summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAllan McRae <allan@archlinux.org>2012-08-11 15:43:43 +0200
committerDan McGee <dan@archlinux.org>2012-09-18 15:38:45 +0200
commit8f5ee729747937f52c2cc199a7498629ab6c9a7d (patch)
treea6db19186ef44199f64b780359333d7c6d8fe81e
parent7262f4bed455eee1a9341aabb08110e6c8f6db28 (diff)
downloadpacman-8f5ee729747937f52c2cc199a7498629ab6c9a7d.tar.gz
pacman-8f5ee729747937f52c2cc199a7498629ab6c9a7d.tar.xz
Avoid interger overflow when calculating remaining line length
When the len and cidx were changed to size_t in a8a1b093, it was possible to have an integer overflow when a line ended right at the edge of the terminal width. Signed-off-by: Allan McRae <allan@archlinux.org>
-rw-r--r--src/pacman/util.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/pacman/util.c b/src/pacman/util.c
index 5079b4ce..5ed450ec 100644
--- a/src/pacman/util.c
+++ b/src/pacman/util.c
@@ -304,7 +304,7 @@ void indentprint(const char *str, unsigned short indent, unsigned short cols)
while(q < next) {
len += wcwidth(*q++);
}
- if(len > (cols - cidx - 1)) {
+ if((len + 1) > (cols - cidx)) {
/* wrap to a newline and reindent */
printf("\n%-*s", (int)indent, "");
cidx = indent;