提交 d3f8e138 编写于 作者: M Markus Armbruster 提交者: Stefan Hajnoczi

hw/9pfs: Fix unchecked strdup() by converting to g_strdup()

Note: the allocation in virtio_9p_init() is still leaked.  To be fixed
in a followup commit.
Signed-off-by: NMarkus Armbruster <armbru@redhat.com>
Reviewed-by: NEric Blake <eblake@redhat.com>
Signed-off-by: NStefan Hajnoczi <stefanha@redhat.com>
上级 c64f50d1
...@@ -94,7 +94,7 @@ VirtIODevice *virtio_9p_init(DeviceState *dev, V9fsConf *conf) ...@@ -94,7 +94,7 @@ VirtIODevice *virtio_9p_init(DeviceState *dev, V9fsConf *conf)
exit(1); exit(1);
} }
s->tag = strdup(conf->tag); s->tag = g_strdup(conf->tag);
s->ctx.uid = -1; s->ctx.uid = -1;
s->ops = fse->ops; s->ops = fse->ops;
......
...@@ -46,7 +46,7 @@ static const char *local_mapped_attr_path(FsContext *ctx, ...@@ -46,7 +46,7 @@ static const char *local_mapped_attr_path(FsContext *ctx,
const char *path, char *buffer) const char *path, char *buffer)
{ {
char *dir_name; char *dir_name;
char *tmp_path = strdup(path); char *tmp_path = g_strdup(path);
char *base_name = basename(tmp_path); char *base_name = basename(tmp_path);
/* NULL terminate the directory */ /* NULL terminate the directory */
...@@ -55,7 +55,7 @@ static const char *local_mapped_attr_path(FsContext *ctx, ...@@ -55,7 +55,7 @@ static const char *local_mapped_attr_path(FsContext *ctx,
snprintf(buffer, PATH_MAX, "%s/%s/%s/%s", snprintf(buffer, PATH_MAX, "%s/%s/%s/%s",
ctx->fs_root, dir_name, VIRTFS_META_DIR, base_name); ctx->fs_root, dir_name, VIRTFS_META_DIR, base_name);
free(tmp_path); g_free(tmp_path);
return buffer; return buffer;
} }
...@@ -130,7 +130,7 @@ static int local_create_mapped_attr_dir(FsContext *ctx, const char *path) ...@@ -130,7 +130,7 @@ static int local_create_mapped_attr_dir(FsContext *ctx, const char *path)
{ {
int err; int err;
char attr_dir[PATH_MAX]; char attr_dir[PATH_MAX];
char *tmp_path = strdup(path); char *tmp_path = g_strdup(path);
snprintf(attr_dir, PATH_MAX, "%s/%s/%s", snprintf(attr_dir, PATH_MAX, "%s/%s/%s",
ctx->fs_root, dirname(tmp_path), VIRTFS_META_DIR); ctx->fs_root, dirname(tmp_path), VIRTFS_META_DIR);
...@@ -139,7 +139,7 @@ static int local_create_mapped_attr_dir(FsContext *ctx, const char *path) ...@@ -139,7 +139,7 @@ static int local_create_mapped_attr_dir(FsContext *ctx, const char *path)
if (err < 0 && errno == EEXIST) { if (err < 0 && errno == EEXIST) {
err = 0; err = 0;
} }
free(tmp_path); g_free(tmp_path);
return err; return err;
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册