diff options
| -rw-r--r-- | sys/src/libbio/brdstr.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/sys/src/libbio/brdstr.c b/sys/src/libbio/brdstr.c index a1b14f885..d749795d2 100644 --- a/sys/src/libbio/brdstr.c +++ b/sys/src/libbio/brdstr.c @@ -6,9 +6,11 @@ static char* badd(char *p, int *np, char *data, int ndata, int delim, int nulldelim) { int n; + char *oldp; n = *np; - p = realloc(p, n+ndata+1); + oldp = p; + p = realloc(oldp, n+ndata+1); if(p){ memmove(p+n, data, ndata); n += ndata; @@ -17,7 +19,8 @@ badd(char *p, int *np, char *data, int ndata, int delim, int nulldelim) else p[n] = '\0'; *np = n; - } + }else + free(oldp); return p; } |
