Diffstat (limited to 'ui-ssdiff.c')
| -rw-r--r-- | ui-ssdiff.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/ui-ssdiff.c b/ui-ssdiff.c index 0cff4b8..9fb5b11 100644 --- a/ui-ssdiff.c +++ b/ui-ssdiff.c @@ -23,7 +23,7 @@ static void create_or_reset_lcs_table() int i; if (L != NULL) { - memset(*L, 0, sizeof(int) * MAX_SSDIFF_SIZE); + memset(*L, 0, sizeof(*L) * MAX_SSDIFF_SIZE); return; } @@ -42,12 +42,14 @@ static char *longest_common_subsequence(char *A, char *B) int i, j, ri; int m = strlen(A); int n = strlen(B); - int tmp1, tmp2; + int tmp1, tmp2, length; int lcs_length; char *result; + length = (m + 1) * (n + 1); + // We bail if the lines are too long - if (m >= MAX_SSDIFF_M || n >= MAX_SSDIFF_N) + if (length > MAX_SSDIFF_SIZE) return NULL; create_or_reset_lcs_table(); |