summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Wong <normalperson@yhbt.net>2009-03-14 18:41:47 -0700
committerLars Hjemli <hjemli@gmail.com>2009-03-15 08:46:15 +0100
commit112973615a78ce61fd6e767128df03b075be72ca (patch)
treecf4b3eb63f42d77ac77f74d951f583e1503886aa
parent6063e7b5532481ffaa7a6f080de28547983bbeb7 (diff)
downloadcgit-112973615a78ce61fd6e767128df03b075be72ca.tar.gz
cgit-112973615a78ce61fd6e767128df03b075be72ca.tar.bz2
cgit-112973615a78ce61fd6e767128df03b075be72ca.zip
fix segfault when displaying empty blobs
When size is zero, subtracting one from it turns it into ULONG_MAX which causes an out-of-bounds access on buf. Signed-off-by: Eric Wong <normalperson@yhbt.net> Signed-off-by: Lars Hjemli <hjemli@gmail.com>
-rw-r--r--ui-tree.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/ui-tree.c b/ui-tree.c
index c6159ec..553dbaa 100644
--- a/ui-tree.c
+++ b/ui-tree.c
@@ -25,11 +25,14 @@ static void print_text_buffer(char *buf, unsigned long size)
html("<tr><td class='linenumbers'><pre>");
idx = 0;
lineno = 0;
- htmlf(numberfmt, ++lineno);
- while(idx < size - 1) { // skip absolute last newline
- if (buf[idx] == '\n')
- htmlf(numberfmt, ++lineno);
- idx++;
+
+ if (size) {
+ htmlf(numberfmt, ++lineno);
+ while(idx < size - 1) { // skip absolute last newline
+ if (buf[idx] == '\n')
+ htmlf(numberfmt, ++lineno);
+ idx++;
+ }
}
html("</pre></td>\n");
html("<td class='lines'><pre><code>");
ortato/plugins/noroot.py?id=28c524e8243f9eb41f2ecb7197e33711727526d9&follow=1'>added noroot-optionnecoro7-11/+57 2007-04-24changed TODO and ChangeLognecoro2-1/+3 2007-04-24using (kde/gk)sunecoro2-2/+2 2007-04-24add application icon and desktop filenecoro1-2/+2 2007-04-24add application icon and desktop filenecoro7-4/+25 2007-04-24moved *.glade and *.ui to one directory to omit the change of the config.py ↵necoro8-5/+2538 each time 2007-04-24moved *.glade and *.ui to one directory to omit the change of the config.py ↵necoro5-1191/+0 each time 2007-04-24moved *.glade and *.ui to one directory to omit the change of the config.py ↵necoro1-1340/+0 each time 2007-04-24added dialogs to warn you when the queue is running on quitting portatonecoro8-214/+267 2007-04-20Made qt plugin-ready; lots of documentationnecoro15-81/+351 2007-04-18nomsgnecoro1-1/+0 2007-04-18finished Qt-Frontendnecoro5-15/+117 2007-04-17marking installed packages in pkglistnecoro5-14/+50 2007-04-16added ebuild window for Qt-Frontendnecoro4-2/+229 2007-04-16added preferences for Qt-Frontendnecoro9-279/+710 2007-04-13Improved masking display and made most of the Qt-Frontend worknecoro7-35/+334 2007-04-10Some more functionality for the Qt-Frontend (complete emerge)necoro8-217/+347 2007-04-07Some more functionality for the Qt-Frontendnecoro11-88/+463 2007-04-07Added Qt-Terminalnecoro4-4/+213 2007-04-06First qt draftnecoro6-1/+796 2007-04-04showed masked packages unmasked by the user similar to stable marked testing ↵necoro5-13/+40 packages 2007-03-31changed changelognecoro1-1/+2 2007-03-31Some small changes for etcproposals 1.1necoro1-2/+2 2007-03-31Some small changes for etcproposals 1.1necoro2-3/+3 2007-03-31Some small changes for etcproposals 1.1necoro1-6/+13 2007-03-31Allowed Plugins to have a menunecoro7-201/+315 2007-03-15Added etc-proposals pluginnecoro7-28/+121 2007-03-10Added USE_EXPAND-supportnecoro5-11/+63 2007-03-10Added plugin-data to about-dialognecoro3-197/+264