rem: return NULL;
add: return (void*)SOAP_NON_NULL;
context: soap_malloc(struct soap *soap, size_t n){ register char *p;  if (!n)    return NULL;  if (!soap)    return SOAP_MALLOC(soap, n);  n += (-(long)n) & 7;  if (!(p = (char*)SOAP_MALLOC(soap, n + sizeof(void*) + sizeof(size_t))))  { soap->error = SOAP_EOM;    return NULL;  }  /* keep chain of alloced cells for later destruction */  soap->alloced = 1;  *(void**)(p + n) = soap->alist;  *(size_t*)(p + n + sizeof(void*)) = n;  soap->alist = p + n;  DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Malloc %u bytes at location %p\n", (unsigned int)n, p));  return p;}