libvirt/src/conf
John Ferlan d53c57b806 PanicCheckABIStability: Need to check for existence
Commit id '4313fead' added a call to virDomainPanicCheckABIStability()
which did not check whether the panic device existed before making a call
to virDomainDeviceInfoCheckABIStability() which ended up segfaulting:

Thread 1 (Thread 0x7f5332837700 (LWP 10964)):
    (src=<optimized out>, dst=<optimized out>)
    at conf/domain_conf.c:13007
    (dst=<optimized out>, src=<optimized out>)
    at conf/domain_conf.c:13712
    (src=<optimized out>, dst=<optimized out>)
    at conf/domain_conf.c:14056
    (domain=domain@entry=0x7f53000057c0, vm=vm@entry=0x7f53000036d0,
     defptr=defptr@entry=0x7f5332836978, snap=snap@entry=0x7f5332836970,
     update_current=update_current@entry=0x7f5332836962, flags=flags@entry=1)
    at conf/snapshot_conf.c:1230
    (domain=0x7f53000057c0, xmlDesc=<optimized out>, flags=1)
    at qemu/qemu_driver.c:12719
    (domain=domain@entry=0x7f53000057c0, xmlDesc=0x7f53000081d0
     "<domainsnapshot>\n  <name>snap2</name>\n
     <description>new-desc</description>\n  <state>running</state>\n
     <parent>\n    <name>snap1</name>\n  </parent>\n
     <creationTime>1387487268</creationTime>\n  <memory s"..., flags=1)
    at libvirt.c:19695
...

(gdb) up 3
(gdb) print *other->def->dom
$2 = {virtType = 2, id = -1, ..
...
  rng = 0x0, panic = 0x0, namespaceData = 0x0,...
...
(gdb) print *def->dom
$3 = {virtType = 2, id = -1, ...
...
  rng = 0x0, panic = 0x0, namespaceData = 0x0,...
...
(gdb)

Also seen using following sequence:

virsh save $dom $file
virsh save-image-edit $file
  add (or remove) a <panic/> line
  <devices>
  ...
    <panic>
      <address type='isa' iobase='0x505'/>
    </panic>
  ...
  </devices>
2013-12-21 09:49:58 -05:00
..
capabilities.c maint: fix comma style issues: conf 2013-11-20 09:14:54 -07:00
capabilities.h maint: avoid further typedef accidents 2013-10-30 17:02:12 -06:00
cpu_conf.c conf: fix incorrect error log in virCPUDefIsEqual 2013-11-07 12:01:29 +01:00
cpu_conf.h maint: avoid 'const fooPtr' in cpu files 2013-10-14 13:11:20 -06:00
device_conf.c
device_conf.h
domain_audit.c Convert 'int i' to 'size_t i' in src/conf/ files 2013-07-10 17:40:13 +01:00
domain_audit.h
domain_conf.c PanicCheckABIStability: Need to check for existence 2013-12-21 09:49:58 -05:00
domain_conf.h conf: add support for panic device 2013-12-12 21:17:26 -07:00
domain_event.c Remove the event namespace concept 2013-12-13 16:07:55 +00:00
domain_event.h Associate a dispatch function with the event objects 2013-12-13 16:07:54 +00:00
domain_nwfilter.c Convert 'int i' to 'size_t i' in src/conf/ files 2013-07-10 17:40:13 +01:00
domain_nwfilter.h
interface_conf.c maint: avoid 'const fooPtr' in conf 2013-10-14 14:34:38 -06:00
interface_conf.h Get rid of shadowed booleans 2013-10-22 15:50:47 +01:00
netdev_bandwidth_conf.c Adapt to VIR_ALLOC and virAsprintf in src/conf/* 2013-07-10 11:07:31 +02:00
netdev_bandwidth_conf.h
netdev_vlan_conf.c maint: avoid 'const fooPtr' in conf 2013-10-14 14:34:38 -06:00
netdev_vlan_conf.h maint: avoid 'const fooPtr' in conf 2013-10-14 14:34:38 -06:00
netdev_vport_profile_conf.c Move virNetDevVPort enum impl into virnetdevvportprofile.c 2013-10-11 11:45:54 +01:00
netdev_vport_profile_conf.h
network_conf.c maint: fix comma style issues: conf 2013-11-20 09:14:54 -07:00
network_conf.h maint: avoid 'const fooPtr' in conf 2013-10-14 14:34:38 -06:00
network_event.c Remove the event namespace concept 2013-12-13 16:07:55 +00:00
network_event.h Associate a dispatch function with the event objects 2013-12-13 16:07:54 +00:00
node_device_conf.c maint: avoid 'const fooPtr' in conf 2013-10-14 14:34:38 -06:00
node_device_conf.h util: use size_t instead of unsigned int for num_virtual_functions 2013-11-08 14:31:11 +02:00
nwfilter_conf.c Fix memory leak in virNWFilterDefParseXML() 2013-12-02 10:39:44 +08:00
nwfilter_conf.h maint: avoid 'const fooPtr' in nwfilter files 2013-10-14 13:13:18 -06:00
nwfilter_ipaddrmap.c Adapt to VIR_ALLOC and virAsprintf in src/conf/* 2013-07-10 11:07:31 +02:00
nwfilter_ipaddrmap.h
nwfilter_params.c maint: avoid 'const fooPtr' in nwfilter files 2013-10-14 13:13:18 -06:00
nwfilter_params.h maint: avoid 'const fooPtr' in nwfilter files 2013-10-14 13:13:18 -06:00
object_event_private.h Remove the event namespace concept 2013-12-13 16:07:55 +00:00
object_event.c Add debug output when registering event handlers 2013-12-13 16:07:55 +00:00
object_event.h Remove the event namespace concept 2013-12-13 16:07:55 +00:00
secret_conf.c maint: avoid 'const fooPtr' in conf 2013-10-14 14:34:38 -06:00
secret_conf.h maint: avoid 'const fooPtr' in conf 2013-10-14 14:34:38 -06:00
snapshot_conf.c qemu: snapshot: Fix incorrect disk type for auto-generated disks 2013-12-06 10:45:49 +01:00
snapshot_conf.h snapshot: conf: Use common parsing and formatting functions for source 2013-12-02 14:28:20 +01:00
storage_conf.c storage: Add gluster pool filter and fix virsh pool listing 2013-12-19 11:01:50 +01:00
storage_conf.h maint: Kill usage of atoi() 2013-12-04 18:56:06 +01:00
storage_encryption_conf.c Convert 'int i' to 'size_t i' in src/conf/ files 2013-07-10 17:40:13 +01:00
storage_encryption_conf.h
virchrdev.c Adapt to VIR_ALLOC and virAsprintf in src/conf/* 2013-07-10 11:07:31 +02:00
virchrdev.h