
On Tue, Dec 18, 2012 at 10:24:06AM +0100, Jiri Denemark wrote:
On Tue, Dec 11, 2012 at 14:53:36 +0000, Daniel P. Berrange wrote:
+virArch virArchFromHost(void) +{ + struct utsname ut; + virArch arch; + + uname(&ut); + + /* Some special cases we need to handle first + * for non-canonical names */ + if (ut.machine[0] == 'i' && + ut.machine[2] == '8' && + ut.machine[3] == '6' && + ut.machine[4] == '\0') { + arch = VIR_ARCH_I686;
This could access undefined memory in the unlikely case of ut.machine being just "i". Insert the ut.machine[1] != '\0' test to match the original code in qemu_command.c.
I decided it is better just to add a 'strlen(ut.machine) == 4' test as the first thing in the conditional Daniel -- |: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :| |: http://libvirt.org -o- http://virt-manager.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :|