On Mon, Apr 07, 2008 at 08:42:48PM +0530, ashwin sinha wrote:
> Hi,
> This is with reference to the xmlGetGlobalState function. If this function
> returns NULL due to a failure in xmlNewGlobalState function, then it will
> lead to a crash in functions like     __xmlBufferAllocScheme on the line
>        return (&xmlGetGlobalState()->xmlBufferAllocScheme);
> 
>   There are a number of functions like this in globals.c and all of them
> will have the same problem.
>     At first i thought having a check for the return value of
> xmlGetGlobalState function would take care of the problem, but it will not,
> because if we return NULL from there the macros defined in globals.h would
> try to de-reference NULL pointers.
> 
>  So I am thinking we need to return a function pointer to a dummy
> function(in case xmlGetGlobalState fails) which will always return NULL in
> order to solve the problem. Is this the correct way to go about it, or is
> there a better way?

  maybe give a pointer to a dummy static data structure instead.
But any error in the thread code will be had to handle correctly,
The best is to avoid global varaibles altogether...

Daniel

-- 
Red Hat Virtualization group http://redhat.com/virtualization/
Daniel Veillard      | virtualization library  http://libvirt.org/
[EMAIL PROTECTED]  | libxml GNOME XML XSLT toolkit  http://xmlsoft.org/
http://veillard.com/ | Rpmfind RPM search engine  http://rpmfind.net/
_______________________________________________
xml mailing list, project page  http://xmlsoft.org/
[email protected]
http://mail.gnome.org/mailman/listinfo/xml

Reply via email to