From: Karel Zak Date: Thu, 15 Feb 2018 10:58:41 +0000 (+0100) Subject: libsmartcols: interpret zero width for pending data as error X-Git-Tag: v2.32-rc2~32 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=19b10b89789943db23131db6eab40706eb915dcc;p=thirdparty%2Futil-linux.git libsmartcols: interpret zero width for pending data as error The command $ column -t -W2 -c11 <<< "cat dog bird" causes finite loop, because there is no minimal column width (missing header). The print functions should be robust enough to return -EINVAL when nonsense is requested. Addresses: https://github.com/karelzak/util-linux/pull/577 Signed-off-by: Karel Zak --- diff --git a/libsmartcols/src/table_print.c b/libsmartcols/src/table_print.c index 5606d23dee..b0b5b6c81f 100644 --- a/libsmartcols/src/table_print.c +++ b/libsmartcols/src/table_print.c @@ -387,6 +387,8 @@ static int print_pending_data( if (!cl->pending_data) return 0; + if (!width) + return -EINVAL; DBG(COL, ul_debugobj(cl, "printing pending data")); @@ -405,7 +407,8 @@ static int print_pending_data( if (bytes == (size_t) -1) goto err; - step_pending_data(cl, bytes); + if (bytes) + step_pending_data(cl, bytes); if (color) fputs(color, tb->out);