freebsd-ports/sysutils/policykit/files/patch-src_kit_kit-string.c

27 lines
778 B
C

--- src/kit/kit-string.c.orig 2008-05-30 17:24:44.000000000 -0400
+++ src/kit/kit-string.c 2008-07-24 01:21:34.000000000 -0400
@@ -123,13 +123,18 @@ static char
if ( !s )
return NULL;
- if ( strlen(s) > n )
- nAvail = n + 1;
- else
- nAvail = strlen(s) + 1;
- p = malloc ( nAvail );
+ if (memchr(s, '\0', n) != NULL) {
+ nAvail = strlen(s);
+ if ( nAvail > n )
+ nAvail = n;
+ } else {
+ nAvail = n;
+ }
+ p = malloc ( nAvail + 1 );
+ if (p == NULL)
+ return NULL;
memcpy ( p, s, nAvail );
- p[nAvail - 1] = '\0';
+ p[nAvail] = '\0';
return p;
}