[libvirt] [PATCH] Ensure remote daemon unions are always non-zero length

Daniel P. Berrange berrange at redhat.com
Tue Aug 24 13:21:29 UTC 2010


If the remote daemon args/ret unions ever become zero length
(due to a build / Makefile bug) then bad stuff happens at
runtime. Add a compile time assertion to check for this kind
of problem

* daemon/remote.h: Ensure non-zero length unions
---
 daemon/remote.h |    4 ++++
 1 files changed, 4 insertions(+), 0 deletions(-)

diff --git a/daemon/remote.h b/daemon/remote.h
index fd8d381..1eb8386 100644
--- a/daemon/remote.h
+++ b/daemon/remote.h
@@ -30,18 +30,22 @@
 typedef union {
 # include "remote_dispatch_args.h"
 } dispatch_args;
+verify(sizeof(dispatch_args) > 0);
 
 typedef union {
 # include "remote_dispatch_ret.h"
 } dispatch_ret;
+verify(sizeof(dispatch_ret) > 0);
 
 typedef union {
 # include "qemu_dispatch_args.h"
 } qemu_dispatch_args;
+verify(sizeof(qemu_dispatch_args) > 0);
 
 typedef union {
 # include "qemu_dispatch_ret.h"
 } qemu_dispatch_ret;
+verify(sizeof(qemu_dispatch_ret) > 0);
 
 
 
-- 
1.7.2.1




More information about the libvir-list mailing list