Skip to content

Fix compilation with _FORTIFY_SOURCE

Juan Quintela qemu-devel 2 versions – In review

Get series with b4
b4 am [email protected]

Versions newest first · linked by author and title

  1. v2 Latest17 patches 5 repliesIn review
  2. v117 patches 17 repliesApplied

Changes in v2 from the cover letter

- we retry the write in the signal handler when error is -EINTR (just use the qemu_write_full() function) (spoted by Jamie Lokier)
- we don't do arith on void * anymore (spoted by malc)

Patches in v2 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/17Introduce qemu_write_full()osdep.c qemu-common.h+28 -00 replies
2/17force to test result for qemu_write_full()qemu-common.h+2 -10 replies
3/17posix-aio-compat.c: fix warning with _FORTIFY_SOURCEposix-aio-compat.c+4 -10 replies
4/17block/cow.c: fix warnings with _FORTIFY_SOURCEblock/cow.c+16 -30 replies
5/17block/qcow.c: fix warnings with _FORTIFY_SOURCEblock/qcow.c+22 -40 replies
6/17block/vmdk.o: fix warnings with _FORTIFY_SOURCEblock/vmdk.c+40 -100 replies
7/17block/vvfat.c: fix warnings with _FORTIFY_SOURCEblock/vvfat.c+7 -24 replies
8/17block/qcow2.c: fix warnings with _FORTIFY_SOURCEblock/qcow2.c+45 -100 replies
9/17net/slirp.c: fix warning with _FORTIFY_SOURCEnet/slirp.c+8 -10 replies
10/17usb-linux.c: fix warning with _FORTIFY_SOURCEusb-linux.c+1 -20 replies
11/17vl.c: fix warning with _FORTIFY_SOURCEvl.c+18 -40 replies
12/17monitor.c: fix warnings with _FORTIFY_SOURCEmonitor.c+10 -20 replies
13/17linux-user/mmap.c: fix warnings with _FORTIFY_SOURCElinux-user/mmap.c+4 -20 replies
14/17check pipe() return valuehw/xen_domainbuild.c+9 -40 replies
15/17Enable _FORTIFY_SOURCE=2configure+1 -10 replies
16/17Check availavility of -fstack-protector-allconfigure+1 -10 replies
17/17mmap_frag() users only check for -1 errorlinux-user/mmap.c+1 -11 reply

Reviews trailers per patch

No Reviewed-by, Acked-by or Tested-by trailers for v2 yet.

Read the v2 thread

Cover letter [Qemu-devel] [PATCH v2 00/17] Fix compilation with _FORTIFY_SOURCE

changes in v2:

- we retry the write in the signal handler when error is -EINTR (just use the qemu_write_full() function) (spoted by Jamie Lokier)
- we don't do arith on void * anymore (spoted by malc)

and there were no more pending commets.

you can get it as a branch at:
git://repo.or.cz/qemu/quintela.git fortify

Later, Juan.

v1:

This series is a work on top of Kirill previous patches. Changes are:
- I addressed all reviewers comments
- Improved some error messages
- Check that it is valid to return -errno (switched lots of places to just return -1).
- check correctly system() result for errors.
- -fstack-protector-all is only used if compiler accept it

And new additions:
- add WARN_UNUSED_RESULT
- check pipe() use in xen code.
- fix mmap_frag() returned -EINVAL when users only deal with -1 for errors.

Kirill, could you coment on the series?

Still not completely happy:
- qemu_write_full() just loops if write() returns 0. it is only used for pipes and files, but pipes and files shouldn't give you short writes in the 1st place. Not sure what to do here.

- check write() errors against -EINVAL/-EINTR/-EAGAIN series where not consistent on this regard. I didn't changed any.

You can pull this series from:

git://repo.or.cz/qemu/quintela.git fortify

With this changes, I am able to compile qemu for all architectures in a linux host without a single warning.

This is important for us (Fedora) because F12 compile all packages with -Wp,-D_FORTIFY_SOURCE=2, and we had -Werror disabled due to this.

Juan Quintela (4):
force to test result for qemu_write_full()
check pipe() return value
Check availavility of -fstack-protector-all
mmap_frag() users only check for -1 error

Kirill A. Shutemov (13):
Introduce qemu_write_full() posix-aio-compat.c: fix warning with _FORTIFY_SOURCE block/cow.c: fix warnings with _FORTIFY_SOURCE block/qcow.c: fix warnings with _FORTIFY_SOURCE block/vmdk.o: fix warnings with _FORTIFY_SOURCE block/vvfat.c: fix warnings with _FORTIFY_SOURCE block/qcow2.c: fix warnings with _FORTIFY_SOURCE net/slirp.c: fix warning with _FORTIFY_SOURCE usb-linux.c: fix warning with _FORTIFY_SOURCE vl.c: fix warning with _FORTIFY_SOURCE monitor.c: fix warnings with _FORTIFY_SOURCE linux-user/mmap.c: fix warnings with _FORTIFY_SOURCE Enable _FORTIFY_SOURCE=2

 block/cow.c          |   19 ++++++++++++++--
 block/qcow.c         |   26 ++++++++++++++++++++---
 block/qcow2.c        |   55 ++++++++++++++++++++++++++++++++++++++++---------
 block/vmdk.c         |   50 ++++++++++++++++++++++++++++++++++++---------
 block/vvfat.c        |    9 ++++++-
 configure            |    4 +-
 hw/xen_domainbuild.c |   13 ++++++++---
 linux-user/mmap.c    |    8 ++++--
 monitor.c            |   12 +++++++++-
 net/slirp.c          |    9 +++++++-
 osdep.c              |   27 ++++++++++++++++++++++++
 posix-aio-compat.c   |    5 +++-
 qemu-common.h        |    2 +
 usb-linux.c          |    3 +-
 vl.c                 |   22 ++++++++++++++++---
 15 files changed, 216 insertions(+), 48 deletions(-)