Fix memory leak in synth backend.
-----BEGIN PGP SIGNATURE----- iQIzBAABCAAdFiEEtIKLr5QxQM7yo0kQcdTV5YIvc9YFAlqLCY0ACgkQcdTV5YIv c9Zl4g/+JNNS87msMawtc30iLwZG/eS57xFYP3B5RJInarboGkPmGalgwXVfyl6b hNwZMfeeKHTI5rHDgp59i49BLASxGxdB6ye0Q4Znt7kF8KxOeyGeDN7P6oZD6vUh EIvhuNGdicHc3qpEvwAU9pwQ9HiFD6lKFnIUS0zBVofCHIJEwXA+X0F1eYto37Cp GBzGf1YVZSIBxOTx7Xqyv6NNerLBcn0henzy2LheEfTYZ9cj7RFT33o39MMa+fIz 5aRp1Q1XyurDWJe6Ff8T4X3HjTfuvYA6TvG5M55nzZqleopHdrCc0bDKKdYZPQ/5 khg88MkGPavdzElXd08MZh4WdpNs2p1Sxz4kaTFezM6wbYq1MtrzzAJMvsplTzVD xZ1/mIbA7aQcU7R8tMJXVdyYz8YCNlI+5RGqkUEB3Mi4pQQK01g973KiJeUQ69id kVDEx+rsFwPK1feFWB5E3dYI41szmqaiHKQMgan0+A0T3GkjIEUJvLKK7LqnQSGp ihv53D1GcbmVLwXTNtqhkclZapEtRaOB3/4t8uM7qFP9xeru2EieGtBli9C/YXHv qQasviRzmbZYyoaSZDKZqo9HFi+HXyLq9iHZNDyJeGLVSzuG0TiL7fEB4Tk9imOM qq4fAbUJp3FZhnWJbT3jF57rPARyV4+NhdtthA7wUsd/dm7EM5w= =mqHd -----END PGP SIGNATURE----- Merge remote-tracking branch 'remotes/gkurz/tags/for-upstream' into staging Fix memory leak in synth backend. # gpg: Signature made Mon 19 Feb 2018 17:29:49 GMT # gpg: using RSA key 71D4D5E5822F73D6 # gpg: Good signature from "Greg Kurz <groug@kaod.org>" # gpg: aka "Gregory Kurz <gregory.kurz@free.fr>" # gpg: aka "[jpeg image of size 3330]" # Primary key fingerprint: B482 8BAF 9431 40CE F2A3 4910 71D4 D5E5 822F 73D6 * remotes/gkurz/tags/for-upstream: 9p: fix leak in synth_name_to_path() 9p: v9fs_path_copy() readability Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
commit
b487e2b2ff
@ -495,6 +495,7 @@ static int synth_name_to_path(FsContext *ctx, V9fsPath *dir_path,
|
||||
}
|
||||
out:
|
||||
/* Copy the node pointer to fid */
|
||||
g_free(target->data);
|
||||
target->data = g_memdup(&node, sizeof(void *));
|
||||
target->size = sizeof(void *);
|
||||
return 0;
|
||||
|
@ -190,12 +190,11 @@ v9fs_path_sprintf(V9fsPath *path, const char *fmt, ...)
|
||||
va_end(ap);
|
||||
}
|
||||
|
||||
void v9fs_path_copy(V9fsPath *lhs, V9fsPath *rhs)
|
||||
void v9fs_path_copy(V9fsPath *dst, const V9fsPath *src)
|
||||
{
|
||||
v9fs_path_free(lhs);
|
||||
lhs->data = g_malloc(rhs->size);
|
||||
memcpy(lhs->data, rhs->data, rhs->size);
|
||||
lhs->size = rhs->size;
|
||||
v9fs_path_free(dst);
|
||||
dst->size = src->size;
|
||||
dst->data = g_memdup(src->data, src->size);
|
||||
}
|
||||
|
||||
int v9fs_name_to_path(V9fsState *s, V9fsPath *dirpath,
|
||||
|
@ -343,7 +343,7 @@ void coroutine_fn v9fs_reclaim_fd(V9fsPDU *pdu);
|
||||
void v9fs_path_init(V9fsPath *path);
|
||||
void v9fs_path_free(V9fsPath *path);
|
||||
void v9fs_path_sprintf(V9fsPath *path, const char *fmt, ...);
|
||||
void v9fs_path_copy(V9fsPath *lhs, V9fsPath *rhs);
|
||||
void v9fs_path_copy(V9fsPath *dst, const V9fsPath *src);
|
||||
int v9fs_name_to_path(V9fsState *s, V9fsPath *dirpath,
|
||||
const char *name, V9fsPath *path);
|
||||
int v9fs_device_realize_common(V9fsState *s, const V9fsTransport *t,
|
||||
|
Loading…
Reference in New Issue
Block a user