ui-ssdiff.c: correct length check for LCS table

Each individual string may be too long for its respective
dimension of the LCS table.

Signed-off-by: Eric Wong <normalperson@yhbt.net>
This commit is contained in:
Eric Wong 2012-01-04 08:59:15 +00:00 gecommit door Lars Hjemli
bovenliggende 94b7c76e53
commit 19c31231fa
1 gewijzigde bestanden met toevoegingen van 2 en 4 verwijderingen

Bestand weergeven

@ -42,14 +42,12 @@ static char *longest_common_subsequence(char *A, char *B)
int i, j, ri;
int m = strlen(A);
int n = strlen(B);
int tmp1, tmp2, length;
int tmp1, tmp2;
int lcs_length;
char *result;
length = (m + 1) * (n + 1);
// We bail if the lines are too long
if (length > MAX_SSDIFF_SIZE)
if (m >= MAX_SSDIFF_M || n >= MAX_SSDIFF_N)
return NULL;
create_or_reset_lcs_table();