qemu-patch-raspberry4/hw/9pfs
Li Qiang ba42ebb863 9pfs: allocate space for guest originated empty strings
If a guest sends an empty string paramater to any 9P operation, the current
code unmarshals it into a V9fsString equal to { .size = 0, .data = NULL }.

This is unfortunate because it can cause NULL pointer dereference to happen
at various locations in the 9pfs code. And we don't want to check str->data
everywhere we pass it to strcmp() or any other function which expects a
dereferenceable pointer.

This patch enforces the allocation of genuine C empty strings instead, so
callers don't have to bother.

Out of all v9fs_iov_vunmarshal() users, only v9fs_xattrwalk() checks if
the returned string is empty. It now uses v9fs_string_size() since
name.data cannot be NULL anymore.

Signed-off-by: Li Qiang <liqiang6-s@360.cn>
[groug, rewritten title and changelog,
 fix empty string check in v9fs_xattrwalk()]
Signed-off-by: Greg Kurz <groug@kaod.org>
2016-10-17 14:13:58 +02:00
..
9p-handle.c 9p: switch back to readdir() 2016-06-06 11:52:34 +02:00
9p-local.c 9pfs: introduce v9fs_path_sprintf() helper 2016-09-16 08:56:15 +02:00
9p-posix-acl.c 9pfs: Clean up includes 2016-01-29 15:07:23 +00:00
9p-proxy.c 9pfs: introduce v9fs_path_sprintf() helper 2016-09-16 08:56:15 +02:00
9p-proxy.h Clean up ill-advised or unusual header guards 2016-07-12 16:20:46 +02:00
9p-synth.c 9p: synth: drop v9fs_ prefix 2016-07-01 14:38:54 +02:00
9p-synth.h Clean up header guards that don't match their file name 2016-07-12 16:19:16 +02:00
9p-xattr-user.c 9pfs: Clean up includes 2016-01-29 15:07:23 +00:00
9p-xattr.c 9pfs: Clean up includes 2016-01-29 15:07:23 +00:00
9p-xattr.h Clean up ill-advised or unusual header guards 2016-07-12 16:20:46 +02:00
9p.c 9pfs: allocate space for guest originated empty strings 2016-10-17 14:13:58 +02:00
9p.h 9pfs: introduce v9fs_path_sprintf() helper 2016-09-16 08:56:15 +02:00
codir.c 9p: switch back to readdir() 2016-06-06 11:52:34 +02:00
cofile.c 9p/fsdev: remove obsolete references to virtio 2016-06-06 11:52:34 +02:00
cofs.c 9p/fsdev: remove obsolete references to virtio 2016-06-06 11:52:34 +02:00
coth.c coroutine: move entry argument to qemu_coroutine_create 2016-07-13 13:26:02 +02:00
coth.h Clean up ill-advised or unusual header guards 2016-07-12 16:20:46 +02:00
coxattr.c 9p/fsdev: remove obsolete references to virtio 2016-06-06 11:52:34 +02:00
Makefile.objs 9pfs: rename virtio-9p.c to 9p.c 2016-01-08 15:32:13 +05:30
trace-events trace-events: fix first line comment in trace-events 2016-08-12 10:36:01 +01:00
virtio-9p-device.c virtio: cleanup VMSTATE_VIRTIO_DEVICE 2016-10-10 02:21:43 +03:00
virtio-9p.h Clean up ill-advised or unusual header guards 2016-07-12 16:20:46 +02:00