esx: Disable libcurl's use of signals to fix a segfault
esx: Disable libcurl's use of signals to fix a segfault

libcurl uses a SIGALRM in combination with sigsetjmp/siglongjmp to be
able to abort a DNS lookup when it takes too long. The problem with this
in a multi-threaded application is that the signal handler for SIGALRM
and the call to siglongjmp can be executed on a thread that is different
from the one that initially did the SIGALRM setup and the call to
sigsetjmp. In the reported case this triggered a segfault.

Disable libcurl's use of signals to avoid this situation. This has the
disadvantage of losing the ability to abort synchronous DNS lookups which
might result in libcurl getting stuck in a DNS lookup in the worst case.
When libcurl was build with an asynchronous DNS backend such as c-ares
then there is no problem because the timeout mechanism works without
signals here anyway.

Reported by Benjamin Wang.

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