[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