Hi, drmStrdup() doesn't check for an allocation failure. I attached a patch that also tries to improve readability of the code. Feel free to disagree on that :)
I realize the chances of drmStrdup() failing are probably low, but it should be corrected anyway. Regards, Tilman
Index: libdrm/xf86drm.c =================================================================== RCS file: /cvs/dri/drm/libdrm/xf86drm.c,v retrieving revision 1.53 diff -u -r1.53 xf86drm.c --- libdrm/xf86drm.c 29 Nov 2005 09:50:47 -0000 1.53 +++ libdrm/xf86drm.c 29 Nov 2005 19:27:46 -0000 @@ -164,12 +164,15 @@ /* drmStrdup can't use strdup(3), since it doesn't call _DRM_MALLOC... */ static char *drmStrdup(const char *s) { - char *retval = NULL; + char *retval; + + if (!s) return NULL; + + retval = _DRM_MALLOC(strlen(s)+1); + if (!retval) return NULL; + + strcpy(retval, s); - if (s) { - retval = _DRM_MALLOC(strlen(s)+1); - strcpy(retval, s); - } return retval; }
pgpvy3nfQougT.pgp
Description: PGP signature