From e39ae52d7d5f4d889a4b946c43aa9fc4b7178993 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= Date: Thu, 4 Mar 2010 13:08:22 +0000 Subject: [PATCH] hun#1999737 add some malloc checks --- ChangeLog | 3 ++- csutil.c | 24 +++++++++++++----------- 2 files changed, 15 insertions(+), 12 deletions(-) diff --git a/ChangeLog b/ChangeLog index afa9d93..6a2c4ec 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,6 @@ 2010-03-04 Caolán McNamara : - - hun#1724558 tidy substring.c a little + * hun#1724558 tidy substring.c a little + * hun#1999737 add some malloc checks 2010-02-23 László Németh : * hyphen.c: fix lefthyphenmin calculation for UTF-8 encoded input diff --git a/csutil.c b/csutil.c index 0555661..3ea3f57 100644 --- a/csutil.c +++ b/csutil.c @@ -17,21 +17,23 @@ char * mystrsep(char ** stringp, const char delim) char * dp = (char *)memchr(mp,(int)((unsigned char)delim),n); if (dp) { int nc; - *stringp = dp+1; - nc = (int)((unsigned long)dp - (unsigned long)mp); - rv = (char *) malloc(nc+1); - memcpy(rv,mp,nc); - *(rv+nc) = '\0'; - return rv; + *stringp = dp+1; + nc = (int)((unsigned long)dp - (unsigned long)mp); + rv = (char *) malloc(nc+1); + if (rv) { + memcpy(rv,mp,nc); + *(rv+nc) = '\0'; + } } else { rv = (char *) malloc(n+1); - memcpy(rv, mp, n); - *(rv+n) = '\0'; - *stringp = mp + n; - return rv; + if (rv) { + memcpy(rv, mp, n); + *(rv+n) = '\0'; + *stringp = mp + n; + } } } - return NULL; + return rv; }