mirror of
https://github.com/qemu/qemu.git
synced 2024-11-28 06:13:46 +08:00
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: Markus Armbruster <armbru@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
This commit is contained in:
parent
c64f50d1e2
commit
d3f8e138c2
@ -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,
|
|||||||
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,
|
|||||||
|
|
||||||
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)
|
|||||||
{
|
{
|
||||||
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)
|
|||||||
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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user