security: Fix libvirtd crash possibility
security: Fix libvirtd crash possibility

Fix for CVE-2012-4423.

When generating RPC protocol messages, it's strictly needed to have a
continuous line of numbers or RPC messages. However in case anyone
tries backporting some functionality and will skip a number, there is
a possibility to make the daemon segfault with newer virsh (version of
the library, rpc call, etc.) even unintentionally.

The problem is that the skipped numbers will get func filled with
NULLs, but there is no check whether these are set before the daemon
tries to run them. This patch very simply enhances one check and fixes
that.

elmarco/libvirt,taget/libvirt,olafhering/libvirt,trainstack/libvirt,libvirt/libvirt,elmarco/libvirt,jeckersb/libvirt,trainstack/libvirt,shugaoye/libvirt,andreabolognani/libvirt,shugaoye/libvirt,bjzhang/libvirt,warewolf/libvirt,jardasgit/libvirt,taget/libvirt,novel/fbsd-libvirt,fabianfreyer/libvirt,siboulet/libvirt-openvz,iam-TJ/libvirt,iam-TJ/libvirt,trainstack/libvirt,novel/fbsd-libvirt,emaste/libvirt,novel/fbsd-libvirt,novel/fbsd-libvirt,emaste/libvirt,jardasgit/libvirt,cbosdo/libvirt,VenkatDatta/libvirt,rlaager/libvirt,jardasgit/libvirt,warewolf/libvirt,agx/libvirt,rlaager/libvirt,iam-TJ/libvirt,agx/libvirt,datto/libvirt,jeckersb/libvirt,siboulet/libvirt-openvz,zhlcindy/libvirt-1.1.4-maintain,warewolf/libvirt,bjzhang/libvirt,novel/fbsd-libvirt,datto/libvirt,zhlcindy/libvirt-1.1.4-maintain,jfehlig/libvirt,andreabolognani/libvirt,taget/libvirt,jardasgit/libvirt,emaste/libvirt,datto/libvirt,cbosdo/libvirt,eskultety/libvirt,jeckersb/libvirt,eskultety/libvirt,zippy2/libvirt,VenkatDatta/libvirt,bjzhang/libvirt,rlaager/libvirt,olafhering/libvirt,crobinso/libvirt,bjzhang/libvirt,trainstack/libvirt,datto/libvirt,jeckersb/libvirt,emaste/libvirt,fabianfreyer/libvirt,novel/fbsd-libvirt,novel/fbsd-libvirt,shugaoye/libvirt,warewolf/libvirt,VenkatDatta/libvirt,cbosdo/libvirt,jfehlig/libvirt,zhlcindy/libvirt-1.1.4-maintain,emaste/libvirt,agx/libvirt,iam-TJ/libvirt,nertpinx/libvirt,novel/fbsd-libvirt,warewolf/libvirt,jeckersb/libvirt,nertpinx/libvirt,VenkatDatta/libvirt,jeckersb/libvirt,cbosdo/libvirt,shugaoye/libvirt,agx/libvirt,taget/libvirt,siboulet/libvirt-openvz,elmarco/libvirt,libvirt/libvirt,trainstack/libvirt,nertpinx/libvirt,andreabolognani/libvirt,fabianfreyer/libvirt,siboulet/libvirt-openvz,zhlcindy/libvirt-1.1.4-maintain,zhlcindy/libvirt-1.1.4-maintain,rlaager/libvirt,jfehlig/libvirt,iam-TJ/libvirt,warewolf/libvirt,trainstack/libvirt,jfehlig/libvirt,cbosdo/libvirt,jardasgit/libvirt,trainstack/libvirt,crobinso/libvirt,shugaoye/libvirt,eskultety/libvirt,taget/libvirt,emaste/libvirt,agx/libvirt,nertpinx/libvirt,jeckersb/libvirt,zippy2/libvirt,novel/fbsd-libvirt,fabianfreyer/libvirt,elmarco/libvirt,libvirt/libvirt,rlaager/libvirt,andreabolognani/libvirt,andreabolognani/libvirt,emaste/libvirt,nertpinx/libvirt,libvirt/libvirt,crobinso/libvirt,fabianfreyer/libvirt,elmarco/libvirt,bjzhang/libvirt,warewolf/libvirt,crobinso/libvirt,zippy2/libvirt,VenkatDatta/libvirt,datto/libvirt,eskultety/libvirt,iam-TJ/libvirt,olafhering/libvirt,siboulet/libvirt-openvz,zippy2/libvirt,olafhering/libvirt,eskultety/libvirt,iam-TJ/libvirt