List for cgit developers and users
 help / color / mirror / Atom feed
From: normalperson at yhbt.net (Eric Wong)
Subject: [PATCH 1/1] move LCS table away from the stack
Date: Wed, 4 Jan 2012 08:59:15 +0000	[thread overview]
Message-ID: <20120104085915.GA13439@dcvr.yhbt.net> (raw)
In-Reply-To: <CAFXTnz6tjxeFYgY7KJX41wUVfkw9sn_iVnYLFX9Ln9bfF5Uwww@mail.gmail.com>

Lars Hjemli <hjemli at gmail.com> wrote:
> On Sun, Sep 18, 2011 at 00:25, Jamie Couture <jamie.couture at gmail.com> wrote:
> > - limit LCS table size: 128x128.
> > - move LCS table to global context: avoid allocating/freeing memory
> > ?for every deferred line change.
> 
> Thanks, finally applied (to stable).

Hi, I got new segfaults with this patch, the following should
fix them.

From 2d9ae9c3369d537259822a6dd64a13963cc4fdbf Mon Sep 17 00:00:00 2001
From: Eric Wong <normalperson at yhbt.net>
Date: Wed, 04 Jan 2012 08:57:43 +0000
Subject: [PATCH 2/2] 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 at yhbt.net>
---
 ui-ssdiff.c |    6 ++----
 1 files changed, 2 insertions(+), 4 deletions(-)

diff --git a/ui-ssdiff.c b/ui-ssdiff.c
index 9fb5b11..45770b1 100644
--- a/ui-ssdiff.c
+++ b/ui-ssdiff.c
@@ -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();
-- 
Eric Wong




  reply	other threads:[~2012-01-04  8:59 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-09-09  4:43 [PATCH 0/1] segfault in cgit jamie.couture
2011-09-09  4:43 ` [PATCH 1/1] move LCS table away from the stack jamie.couture
2011-09-11  0:44   ` jamie.couture
2011-09-11  0:44     ` [PATCH] " jamie.couture
2011-09-14  6:38       ` hjemli
2011-09-17 22:25         ` [PATCH 1/1] " jamie.couture
2012-01-03 15:12           ` hjemli
2012-01-04  8:59             ` normalperson [this message]
2012-01-04 16:57               ` jamie.couture
2012-01-12  3:38               ` jamie.couture
2012-01-12  3:38                 ` [PATCH 1/2] correct length check for LCS table jamie.couture
2012-01-12  3:38                 ` [PATCH 2/2] use correct type for sizeof jamie.couture
2012-03-18  9:22                   ` hjemli

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20120104085915.GA13439@dcvr.yhbt.net \
    --to=cgit@lists.zx2c4.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).