[syslinux:master] rosh: more: overallocation, better feedback for debug

syslinux-bot for Gene Cumm gene.cumm at gmail.com
Fri Oct 8 13:57:15 PDT 2010


Commit-ID:  b35617b3426750bf1301b1f844ec082405da7983
Gitweb:     http://syslinux.zytor.com/commit/b35617b3426750bf1301b1f844ec082405da7983
Author:     Gene Cumm <gene.cumm at gmail.com>
AuthorDate: Fri, 2 Jul 2010 20:09:24 -0400
Committer:  Gene Cumm <gene.cumm at gmail.com>
CommitDate: Wed, 7 Jul 2010 10:02:18 -0400

rosh: more: overallocation, better feedback for debug



---
 com32/rosh/rosh.c |    9 ++++++---
 1 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/com32/rosh/rosh.c b/com32/rosh/rosh.c
index 7ee30fd..fc24776 100644
--- a/com32/rosh/rosh.c
+++ b/com32/rosh/rosh.c
@@ -877,13 +877,15 @@ void rosh_more(const char *cmdstr)
     int cmdpos;
     int rows, cols;
     char *scrbuf;
+    int ret;
 
     ROSH_DEBUG("CMD: '%s'\n", cmdstr);
     /* Initialization */
     filestr[0] = 0;
     cmdpos = 0;
-    if (getscreensize(1, &rows, &cols)) {
-	ROSH_DEBUG("getscreensize() fail; fall back\n");
+    ret = getscreensize(1, &rows, &cols);
+    if (ret) {
+	ROSH_DEBUG("getscreensize() fail(%d); fall back\n", ret);
 	ROSH_DEBUG("\tROWS='%d'\tCOLS='%d'\n", rows, cols);
 	/* If either fail, go under normal size, just in case */
 	if (!rows)
@@ -892,7 +894,8 @@ void rosh_more(const char *cmdstr)
 	    cols = 75;
     }
     ROSH_DEBUG("\tUSE ROWS='%d'\tCOLS='%d'\n", rows, cols);
-    scrbuf = calloc(rows, cols + 1);
+    /* 32 bit align beginning of row and over allocate */
+    scrbuf = malloc(rows * ((cols+3)&(INT_MAX - 3)));
     if (!scrbuf)
 	return;
 



More information about the Syslinux-commits mailing list