VK Sameer <sameer@collab.net> writes:
> As currently implemented for this issue, message and serr->message are
> both NULL (and in fact message = serr->message). There is no check for
> NULL before calling apr_pstrdup(). Is this a problem?
httpd-2.0/srclib/apr/include/apr_strings.h doesn't seem to say:
/**
* duplicate a string into memory allocated out of a pool
* @param p The pool to allocate out of
* @param s The string to duplicate
* @return The new string
*/
APR_DECLARE(char *) apr_pstrdup(apr_pool_t *p, const char *s);
httpd-2.0/srclib/apr/strings/apr_strings.c, however, does:
APR_DECLARE(char *) apr_pstrdup(apr_pool_t *a, const char *s)
{
char *res;
apr_size_t len;
if (s == NULL) {
return NULL;
}
len = strlen(s) + 1;
res = apr_palloc(a, len);
memcpy(res, s, len);
return res;
}
I still think it's a bug that we don't check serr->message in our
code, however, and rely on this undocumented behavior of apr_pstrdup.
My sense is that our code "thinks" serr->message is non-null, and that
this might get us into trouble down the road in 'derr' or some other
place.
-Karl
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Wed Feb 23 17:26:34 2005