Hi,

       A couple of NULL checks after malloc were missing in threads.c, and
another check for pthread_key_create was repeated, patch attached for the
same.

Regards

Ashwin

 

 

 

*** threads.c   2008-03-18 11:24:58.000000000 +0530
--- threadsfix.c        2008-03-18 11:29:08.000000000 +0530
*************** __xmlGlobalInitMutexLock(void)
*** 436,441 ****
--- 436,443 ----
      /* Create a new critical section */
      if (global_init_lock == NULL) {
        cs = malloc(sizeof(CRITICAL_SECTION));
+       if (cs == NULL)
+           return;
        InitializeCriticalSection(cs);
  
        /* Swap it into the global_init_lock */
*************** xmlGetGlobalState(void)
*** 665,670 ****
--- 667,674 ----
      if (globalval == NULL) {
        xmlGlobalState *tsd = xmlNewGlobalState();
        p = (xmlGlobalStateCleanupHelperParams *) 
malloc(sizeof(xmlGlobalStateCleanupHelperParams));
+       if (p == NULL)
+           return NULL;
        p->memory = tsd;
  #if defined(LIBXML_STATIC) && !defined(LIBXML_STATIC_FOR_DLL)
        DuplicateHandle(GetCurrentProcess(), GetCurrentThread(), 
*************** xmlInitThreads(void)
*** 829,835 ****
            (pthread_cond_init != NULL) &&
            (pthread_equal != NULL) &&
            (pthread_self != NULL) &&
-           (pthread_key_create != NULL) &&
            (pthread_cond_signal != NULL)) {
            libxml_is_threaded = 1;
  /* fprintf(stderr, "Running multithreaded\n"); */
--- 833,838 ----
_______________________________________________
xml mailing list, project page  http://xmlsoft.org/
[email protected]
http://mail.gnome.org/mailman/listinfo/xml

Reply via email to