mirror of https://github.com/xemu-project/xemu.git
9pfs: Use g_new() & friends where that makes obvious sense
g_new(T, n) is neater than g_malloc(sizeof(T) * n). It's also safer, for two reasons. One, it catches multiplication overflowing size_t. Two, it returns T * rather than void *, which lets the compiler catch more type errors. This commit only touches allocations with size arguments of the form sizeof(T). Initial patch created mechanically with: $ spatch --in-place --sp-file scripts/coccinelle/use-g_new-etc.cocci \ --macro-file scripts/cocci-macro-file.h FILES... This uncovers a typing error: ../hw/9pfs/9p.c: In function ‘qid_path_fullmap’: ../hw/9pfs/9p.c:855:13: error: assignment to ‘QpfEntry *’ from incompatible pointer type ‘QppEntry *’ [-Werror=incompatible-pointer-types] 855 | val = g_new0(QppEntry, 1); | ^ Harmless, because QppEntry is larger than QpfEntry. Manually fixed to allocate a QpfEntry instead. Cc: Greg Kurz <groug@kaod.org> Cc: Christian Schoenebeck <qemu_oss@crudebyte.com> Signed-off-by: Markus Armbruster <armbru@redhat.com> Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Reviewed-by: Christian Schoenebeck <qemu_oss@crudebyte.com> Reviewed-by: Alex Bennée <alex.bennee@linaro.org> Reviewed-by: Greg Kurz <groug@kaod.org> Message-Id: <20220315144156.1595462-3-armbru@redhat.com>
This commit is contained in:
parent
15ba4a9f7b
commit
1366244ab6
|
@ -1187,7 +1187,7 @@ static int proxy_parse_opts(QemuOpts *opts, FsDriverEntry *fs, Error **errp)
|
|||
|
||||
static int proxy_init(FsContext *ctx, Error **errp)
|
||||
{
|
||||
V9fsProxy *proxy = g_malloc(sizeof(V9fsProxy));
|
||||
V9fsProxy *proxy = g_new(V9fsProxy, 1);
|
||||
int sock_id;
|
||||
|
||||
if (ctx->export_flags & V9FS_PROXY_SOCK_NAME) {
|
||||
|
|
|
@ -49,7 +49,7 @@ static V9fsSynthNode *v9fs_add_dir_node(V9fsSynthNode *parent, int mode,
|
|||
|
||||
/* Add directory type and remove write bits */
|
||||
mode = ((mode & 0777) | S_IFDIR) & ~(S_IWUSR | S_IWGRP | S_IWOTH);
|
||||
node = g_malloc0(sizeof(V9fsSynthNode));
|
||||
node = g_new0(V9fsSynthNode, 1);
|
||||
if (attr) {
|
||||
/* We are adding .. or . entries */
|
||||
node->attr = attr;
|
||||
|
@ -128,7 +128,7 @@ int qemu_v9fs_synth_add_file(V9fsSynthNode *parent, int mode,
|
|||
}
|
||||
/* Add file type and remove write bits */
|
||||
mode = ((mode & 0777) | S_IFREG);
|
||||
node = g_malloc0(sizeof(V9fsSynthNode));
|
||||
node = g_new0(V9fsSynthNode, 1);
|
||||
node->attr = &node->actual_attr;
|
||||
node->attr->inode = synth_node_count++;
|
||||
node->attr->nlink = 1;
|
||||
|
|
|
@ -324,7 +324,7 @@ static V9fsFidState *alloc_fid(V9fsState *s, int32_t fid)
|
|||
return NULL;
|
||||
}
|
||||
}
|
||||
f = g_malloc0(sizeof(V9fsFidState));
|
||||
f = g_new0(V9fsFidState, 1);
|
||||
f->fid = fid;
|
||||
f->fid_type = P9_FID_NONE;
|
||||
f->ref = 1;
|
||||
|
@ -804,7 +804,7 @@ static int qid_inode_prefix_hash_bits(V9fsPDU *pdu, dev_t dev)
|
|||
|
||||
val = qht_lookup(&pdu->s->qpd_table, &lookup, hash);
|
||||
if (!val) {
|
||||
val = g_malloc0(sizeof(QpdEntry));
|
||||
val = g_new0(QpdEntry, 1);
|
||||
*val = lookup;
|
||||
affix = affixForIndex(pdu->s->qp_affix_next);
|
||||
val->prefix_bits = affix.bits;
|
||||
|
@ -852,7 +852,7 @@ static int qid_path_fullmap(V9fsPDU *pdu, const struct stat *stbuf,
|
|||
return -ENFILE;
|
||||
}
|
||||
|
||||
val = g_malloc0(sizeof(QppEntry));
|
||||
val = g_new0(QpfEntry, 1);
|
||||
*val = lookup;
|
||||
|
||||
/* new unique inode and device combo */
|
||||
|
@ -928,7 +928,7 @@ static int qid_path_suffixmap(V9fsPDU *pdu, const struct stat *stbuf,
|
|||
return -ENFILE;
|
||||
}
|
||||
|
||||
val = g_malloc0(sizeof(QppEntry));
|
||||
val = g_new0(QppEntry, 1);
|
||||
*val = lookup;
|
||||
|
||||
/* new unique inode affix and device combo */
|
||||
|
|
|
@ -141,9 +141,9 @@ static int do_readdir_many(V9fsPDU *pdu, V9fsFidState *fidp,
|
|||
|
||||
/* append next node to result chain */
|
||||
if (!e) {
|
||||
*entries = e = g_malloc0(sizeof(V9fsDirEnt));
|
||||
*entries = e = g_new0(V9fsDirEnt, 1);
|
||||
} else {
|
||||
e = e->next = g_malloc0(sizeof(V9fsDirEnt));
|
||||
e = e->next = g_new0(V9fsDirEnt, 1);
|
||||
}
|
||||
e->dent = qemu_dirent_dup(dent);
|
||||
|
||||
|
@ -163,7 +163,7 @@ static int do_readdir_many(V9fsPDU *pdu, V9fsFidState *fidp,
|
|||
break;
|
||||
}
|
||||
|
||||
e->st = g_malloc0(sizeof(struct stat));
|
||||
e->st = g_new0(struct stat, 1);
|
||||
memcpy(e->st, &stbuf, sizeof(struct stat));
|
||||
}
|
||||
|
||||
|
|
|
@ -468,12 +468,12 @@ static void v9fs_rreaddir(P9Req *req, uint32_t *count, uint32_t *nentries,
|
|||
togo -= 13 + 8 + 1 + 2 + slen, ++n)
|
||||
{
|
||||
if (!e) {
|
||||
e = g_malloc(sizeof(struct V9fsDirent));
|
||||
e = g_new(struct V9fsDirent, 1);
|
||||
if (entries) {
|
||||
*entries = e;
|
||||
}
|
||||
} else {
|
||||
e = e->next = g_malloc(sizeof(struct V9fsDirent));
|
||||
e = e->next = g_new(struct V9fsDirent, 1);
|
||||
}
|
||||
e->next = NULL;
|
||||
/* qid[13] offset[8] type[1] name[s] */
|
||||
|
|
Loading…
Reference in New Issue