diff options
Diffstat (limited to '')
| -rw-r--r-- | html.c | 9 | ||||
| -rwxr-xr-x | tests/t0108-patch.sh | 2 | 
2 files changed, 7 insertions, 4 deletions
| @@ -268,19 +268,20 @@ int hextoint(char c)  char *convert_query_hexchar(char *txt)  { -	int d1, d2; -	if (strlen(txt) < 3) { +	int d1, d2, n; +	n = strlen(txt); +	if (n < 3) {  		*txt = '\0';  		return txt-1;  	}  	d1 = hextoint(*(txt+1));  	d2 = hextoint(*(txt+2));  	if (d1<0 || d2<0) { -		strcpy(txt, txt+3); +		memmove(txt, txt+3, n-3);  		return txt-1;  	} else {  		*txt = d1 * 16 + d2; -		strcpy(txt+1, txt+3); +		memmove(txt+1, txt+3, n-2);  		return txt;  	}  } diff --git a/tests/t0108-patch.sh b/tests/t0108-patch.sh index 33351d6..e608104 100755 --- a/tests/t0108-patch.sh +++ b/tests/t0108-patch.sh @@ -35,3 +35,5 @@ run_test 'generate patch for initial commit' '  run_test 'find `cgit` signature' '  	tail -1 trash/tmp | grep -e "^cgit"  ' + +tests_done | 
