libvirt/src/util
Eric Blake 54456cc0fd storage: avoid mishandling backing store > 2GB
Detected by Coverity.  The code was doing math on shifted unsigned
char (which promotes to int), then promoting that to unsigned long
during assignment to size.  On 64-bit platforms, this risks sign
extending values of size > 2GiB.  Bug present since commit
489fd3 (v0.6.0).

I'm not sure if a specially-crafted bogus qcow2 image could
exploit this, although it's probably not possible, since we
were already checking for the computed results being within
range of our fixed-size buffer.

* src/util/storage_file.c (qcowXGetBackingStore): Avoid sign
extension.
2011-06-08 05:18:46 -06:00
..
authhelper.c esx: Move username and password helper functions to authhelper.c 2010-03-16 20:15:32 +01:00
authhelper.h esx: Move username and password helper functions to authhelper.c 2010-03-16 20:15:32 +01:00
bitmap.c maint: rename virBufferVSprintf to virBufferAsprintf 2011-05-05 13:47:40 -06:00
bitmap.h Put <stdbool.h> into internal.h so it is available everywhere 2011-02-24 12:04:06 +00:00
bridge.c maint: omit translation for all VIR_INFO 2011-05-11 15:20:33 -06:00
bridge.h Allow brAddTap to create a tap device that is down 2011-02-17 13:36:22 -05:00
buf.c buf: add virBufferVasprintf 2011-05-05 13:48:19 -06:00
buf.h buf: add virBufferVasprintf 2011-05-05 13:48:19 -06:00
cgroup.c libvirt,logging: cleanup VIR_XXX0() 2011-05-11 12:41:14 -06:00
cgroup.h virsh: fix memtune's help message for swap_hard_limit 2011-03-17 16:45:06 -06:00
command.c Move virRun, virExec*, virFork to util/command 2011-06-07 14:06:11 -04:00
command.h Move virRun, virExec*, virFork to util/command 2011-06-07 14:06:11 -04:00
conf.c maint: rename virBufferVSprintf to virBufferAsprintf 2011-05-05 13:47:40 -06:00
conf.h esx: Allow '-' in VMX entry names 2010-09-23 10:37:10 +02:00
dnsmasq.c network: fix return value of hostsFileWrite 2011-04-28 10:44:57 -04:00
dnsmasq.h Convert virNetwork to use virSocketAddr everywhere 2010-10-22 12:07:02 +01:00
ebtables.c Move virRun, virExec*, virFork to util/command 2011-06-07 14:06:11 -04:00
ebtables.h build: consistently indent preprocessor directives 2010-03-09 19:22:28 +01:00
event_poll.c libvirt,logging: cleanup VIR_XXX0() 2011-05-11 12:41:14 -06:00
event_poll.h Move event code out of the daemon/ into src/util/ 2011-03-07 14:16:13 +00:00
event.c libvirt,logging: cleanup VIR_XXX0() 2011-05-11 12:41:14 -06:00
event.h Fix documentation for virEventAddTimeout() 2010-10-26 10:23:03 +02:00
files.c deprecate fclose() and introduce VIR_{FORCE_}FCLOSE() 2010-11-16 21:13:29 -05:00
files.h Put <stdbool.h> into internal.h so it is available everywhere 2011-02-24 12:04:06 +00:00
hash.c libvirt,logging: cleanup VIR_XXX0() 2011-05-11 12:41:14 -06:00
hash.h tests: More unit tests for internal hash APIs 2011-04-27 15:32:30 +02:00
hooks.c util: Initialize hooks at daemon shutdown if no hooks defined 2011-04-28 14:48:26 +08:00
hooks.h qemu: add two hook script events "prepare" and "release" 2011-03-22 21:12:36 +08:00
hostusb.c Remove virConnectPtr from virRaiseErrorFull 2011-04-17 07:22:23 +02:00
hostusb.h build: consistently indent preprocessor directives 2010-03-09 19:22:28 +01:00
interface.c Fix two uninitialized variable warnings 2011-05-10 08:39:56 +02:00
interface.h add 802.1Qbh and 802.1Qbg handling 2010-06-02 21:35:22 -04:00
iohelper.c virFDStream: Add option for delete file after it's opening 2011-05-13 12:44:49 +02:00
iptables.c Remove virConnectPtr from virRaiseErrorFull 2011-04-17 07:22:23 +02:00
iptables.h Update iptables.c to also support ip6tables. 2010-12-23 15:54:32 -05:00
json.c libvirt,logging: cleanup VIR_XXX0() 2011-05-11 12:41:14 -06:00
json.h json: Fix *GetBoolean functions 2011-05-09 14:02:13 +02:00
logging.c build: fix VIR_DEBUG on mingw 2011-05-24 12:34:43 -06:00
logging.h build: avoid gcc preprocessor extensions 2011-05-11 13:28:50 -06:00
macvtap.c Add support for 'passthru' mode for direct network interfaces 2011-05-18 08:15:08 -06:00
macvtap.h Add support for 'passthru' mode for direct network interfaces 2011-05-18 08:15:08 -06:00
memory.c build: fix cygwin strerror_r failure 2011-02-11 12:32:17 -07:00
memory.h build: make VIR_FREE do some type checking 2011-04-25 10:20:18 -06:00
network.c Remove virConnectPtr from virRaiseErrorFull 2011-04-17 07:22:23 +02:00
network.h Put <stdbool.h> into internal.h so it is available everywhere 2011-02-24 12:04:06 +00:00
pci.c Move virRun, virExec*, virFork to util/command 2011-06-07 14:06:11 -04:00
pci.h pciResetDevice: use inactive devices to determine safe reset 2010-07-26 18:43:04 +02:00
processinfo.c build: update gnulib 2010-05-06 14:35:38 -06:00
processinfo.h build: consistently indent preprocessor directives 2010-03-09 19:22:28 +01:00
qparams.c qparams.c: do not skip va_end, twice 2010-02-19 11:52:04 +01:00
qparams.h build: consistently indent preprocessor directives 2010-03-09 19:22:28 +01:00
sexpr.c sexpr: Improve serialization error reporting 2011-05-27 15:31:33 +02:00
sexpr.h Use virBufferPtr for sexpr2string instead of manual buffer handling 2011-04-05 09:14:59 +02:00
stats_linux.c Update and sort msg_gen_function list and mark unmarked messages 2011-04-18 19:05:15 +02:00
stats_linux.h build: consistently indent preprocessor directives 2010-03-09 19:22:28 +01:00
storage_file.c storage: avoid mishandling backing store > 2GB 2011-06-08 05:18:46 -06:00
storage_file.h Put <stdbool.h> into internal.h so it is available everywhere 2011-02-24 12:04:06 +00:00
sysinfo.c Fix sysinfo/virsh build problems on Win32 2011-05-31 14:17:21 +01:00
sysinfo.h Add an API for comparing the ABI of two guest configurations 2011-05-31 12:14:55 +01:00
threadpool.c Put <stdbool.h> into internal.h so it is available everywhere 2011-02-24 12:04:06 +00:00
threadpool.h threadpool: allow NULL jobdata 2011-01-03 14:45:00 -07:00
threads-pthread.c threads: add one-time initialization support 2011-04-25 08:53:09 -06:00
threads-pthread.h threads: add one-time initialization support 2011-04-25 08:53:09 -06:00
threads-win32.c threads: add one-time initialization support 2011-04-25 08:53:09 -06:00
threads-win32.h threads: add one-time initialization support 2011-04-25 08:53:09 -06:00
threads.c build: avoid pthreads-win32 on mingw 2010-06-10 06:05:31 -06:00
threads.h threads: add one-time initialization support 2011-04-25 08:53:09 -06:00
util.c Move virRun, virExec*, virFork to util/command 2011-06-07 14:06:11 -04:00
util.h Move virRun, virExec*, virFork to util/command 2011-06-07 14:06:11 -04:00
uuid.c bye to close(), welcome to VIR_(FORCE_)CLOSE() 2010-11-09 15:48:48 -05:00
uuid.h Expose a host UUID in the capabilities XML 2010-05-25 17:09:18 +01:00
virtaudit.c audit: fix minor off-by-one 2011-05-26 11:17:55 -06:00
virtaudit.h Put <stdbool.h> into internal.h so it is available everywhere 2011-02-24 12:04:06 +00:00
virterror_internal.h Remove virConnectPtr from virRaiseErrorFull 2011-04-17 07:22:23 +02:00
virterror.c Basic framework for lock manager plugins 2011-06-02 10:54:00 +01:00
xml.c xml: Make sure virXpathNodeSet always sets an error 2011-05-13 10:32:52 -04:00
xml.h util: add missing string->integer conversion functions 2011-01-13 15:10:40 -07:00