Fix VENOM vulnerability for Intel-based systems.

This is a back-port of the upstream fix to the VENOM security
vulnerability, that affects the floppy disk virtual device
implementation.

Upstream origin:
    http://git.qemu.org/?p=qemu.git;a=commitdiff;h=e907746266721f305d67bc0718795fedee2e824c

Upstream commit message:
	fdc: force the fifo access to be in bounds of the allocated buffer

	During processing of certain commands such as FD_CMD_READ_ID and
	FD_CMD_DRIVE_SPECIFICATION_COMMAND the fifo memory access could
	get out of bounds leading to memory corruption with values coming
	from the guest.

	Fix this by making sure that the index is always bounded by the
	allocated memory.

	This is CVE-2015-3456.

	Signed-off-by: Petr Matousek <pmatouse@redhat.com>
	Reviewed-by: John Snow <jsnow@redhat.com>
	Signed-off-by: John Snow <jsnow@redhat.com>

BUG=21251683

Change-Id: I46c0908fa6ece61f84879a7cf8e60fa45548f7d0
1 file changed
tree: ed034dee07dc0041d43b41a2badce1ccc61fd815
  1. .exrc
  2. .gitignore
  3. .gitmodules
  4. .mailmap
  5. .travis.yml
  6. CODING_STYLE
  7. COPYING
  8. COPYING.LIB
  9. Changelog
  10. HACKING
  11. LICENSE
  12. MAINTAINERS
  13. Makefile
  14. Makefile.objs
  15. Makefile.target
  16. README
  17. VERSION
  18. accel.c
  19. aio-posix.c
  20. aio-win32.c
  21. android-commands.h
  22. android-console.c
  23. android-console.h
  24. arch_init.c
  25. async.c
  26. audio/
  27. backends/
  28. balloon.c
  29. block-migration.c
  30. block.c
  31. block/
  32. blockdev-nbd.c
  33. blockdev.c
  34. blockjob.c
  35. bootdevice.c
  36. bsd-user/
  37. bt-host.c
  38. bt-vhci.c
  39. configure
  40. coroutine-gthread.c
  41. coroutine-sigaltstack.c
  42. coroutine-ucontext.c
  43. coroutine-win32.c
  44. cpu-exec.c
  45. cpus.c
  46. cputlb.c
  47. default-configs/
  48. device-hotplug.c
  49. device_tree.c
  50. disas.c
  51. disas/
  52. dma-helpers.c
  53. docs/
  54. dump.c
  55. exec.c
  56. fpu/
  57. fsdev/
  58. gdb-xml/
  59. gdbstub.c
  60. hmp-commands.hx
  61. hmp.c
  62. hmp.h
  63. hw/
  64. include/
  65. iohandler.c
  66. ioport.c
  67. iothread.c
  68. kvm-all.c
  69. kvm-stub.c
  70. libcacard/
  71. libdecnumber/
  72. linux-headers/
  73. linux-user/
  74. main-loop.c
  75. memory.c
  76. memory_mapping.c
  77. migration-exec.c
  78. migration-fd.c
  79. migration-rdma.c
  80. migration-tcp.c
  81. migration-unix.c
  82. migration.c
  83. module-common.c
  84. monitor.c
  85. nbd.c
  86. net/
  87. numa.c
  88. os-posix.c
  89. os-win32.c
  90. page_cache.c
  91. pc-bios/
  92. po/
  93. qapi-schema.json
  94. qapi/
  95. qdev-monitor.c
  96. qdict-test-data.txt
  97. qemu-bridge-helper.c
  98. qemu-char.c
  99. qemu-coroutine-io.c
  100. qemu-coroutine-lock.c
  101. qemu-coroutine-sleep.c
  102. qemu-coroutine.c
  103. qemu-doc.texi
  104. qemu-file-stdio.c
  105. qemu-file-unix.c
  106. qemu-file.c
  107. qemu-img-cmds.hx
  108. qemu-img.c
  109. qemu-img.texi
  110. qemu-io-cmds.c
  111. qemu-io.c
  112. qemu-log.c
  113. qemu-nbd.c
  114. qemu-nbd.texi
  115. qemu-options-wrapper.h
  116. qemu-options.h
  117. qemu-options.hx
  118. qemu-seccomp.c
  119. qemu-tech.texi
  120. qemu-timer.c
  121. qemu.nsi
  122. qemu.sasl
  123. qga/
  124. qmp-commands.hx
  125. qmp.c
  126. qobject/
  127. qom/
  128. qtest.c
  129. roms/
  130. rules.mak
  131. savevm.c
  132. scripts/
  133. slirp/
  134. softmmu_template.h
  135. spice-qemu-char.c
  136. stubs/
  137. sysconfigs/
  138. target-alpha/
  139. target-arm/
  140. target-cris/
  141. target-i386/
  142. target-lm32/
  143. target-m68k/
  144. target-microblaze/
  145. target-mips/
  146. target-moxie/
  147. target-openrisc/
  148. target-ppc/
  149. target-s390x/
  150. target-sh4/
  151. target-sparc/
  152. target-tricore/
  153. target-unicore32/
  154. target-xtensa/
  155. tcg-runtime.c
  156. tcg/
  157. tci.c
  158. tests/
  159. thread-pool.c
  160. thunk.c
  161. tpm.c
  162. trace-events
  163. trace/
  164. translate-all.c
  165. translate-all.h
  166. ui/
  167. user-exec.c
  168. util/
  169. version.rc
  170. vl.c
  171. vmstate.c
  172. xbzrle.c
  173. xen-common-stub.c
  174. xen-common.c
  175. xen-hvm-stub.c
  176. xen-hvm.c
  177. xen-mapcache.c