hw/9pfs/virtio-9p-local.c: use snprintf() instead of sprintf()
'ctx->fs_root' + 'path'/'fullname.data' may be larger than PATH_MAX, so need use snprintf() instead of sprintf() just like another area have done in 9pfs. This could possibly result in the truncation of pathname, which we address in the follow up patch. Signed-off-by: Chen Gang <gang.chen.5i5j@gmail.com> Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
This commit is contained in:
parent
75b7931ec6
commit
fae0864573
@ -898,7 +898,8 @@ static int local_remove(FsContext *ctx, const char *path)
|
||||
* directory
|
||||
*/
|
||||
if (S_ISDIR(stbuf.st_mode)) {
|
||||
sprintf(buffer, "%s/%s/%s", ctx->fs_root, path, VIRTFS_META_DIR);
|
||||
snprintf(buffer, ARRAY_SIZE(buffer), "%s/%s/%s",
|
||||
ctx->fs_root, path, VIRTFS_META_DIR);
|
||||
err = remove(buffer);
|
||||
if (err < 0 && errno != ENOENT) {
|
||||
/*
|
||||
@ -1033,8 +1034,8 @@ static int local_unlinkat(FsContext *ctx, V9fsPath *dir,
|
||||
* If directory remove .virtfs_metadata contained in the
|
||||
* directory
|
||||
*/
|
||||
sprintf(buffer, "%s/%s/%s", ctx->fs_root,
|
||||
fullname.data, VIRTFS_META_DIR);
|
||||
snprintf(buffer, ARRAY_SIZE(buffer), "%s/%s/%s", ctx->fs_root,
|
||||
fullname.data, VIRTFS_META_DIR);
|
||||
ret = remove(buffer);
|
||||
if (ret < 0 && errno != ENOENT) {
|
||||
/*
|
||||
|
Loading…
Reference in New Issue
Block a user