strndup is added terminating null byte.
but Fossil_strndup behaves as strncpy.
fossil_strndup not added terminating null byte ('\0') when len>=0
src/import.c : fossil_strndup
https://www.fossil-scm.org/index.html/artifact?ln=91&name=14ebf8376b92b944
z[n] = '\0';
test code --------------------
Insert the code somewhere in src/*.c and recompile.
make clean && make
./fossil test-fossil_strndup
result --------------------
strlen(fossil_strndup("0123456789", 0)) : 2
assertion "strlen(p)==i" failed:
test code --------------------
/*
** COMMAND: test-fossil_strndup
**
** Help text goes here.
*/
void test_fossil_strndup_cmd(void){
for(int i=0; i<=5; i++){
char *p = fossil_strndup("0123456789", i);
if (strlen(p)!=i)
printf("strlen(fossil_strndup(\"0123456789\", %d)) : %d\n",i,strlen(p));
assert(strlen(p)==i);
free(p);
}
printf("ok\n");
}
_______________________________________________
fossil-users mailing list
fossil-users@lists.fossil-scm.org
http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users