From: Pádraig Brady
Date: Thu, 5 May 2011 14:20:13 +0000 (+0100) Subject: df: fix crash in mem exhaustion edge case X-Git-Tag: v8.13~185 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9aeffd3fe549116c043b61ec0d593a7d4c004a44;p=thirdparty%2Fcoreutils.git df: fix crash in mem exhaustion edge case * src/df.c (print_table): Don't try to output NULL if ambsalign() can't allocate memory. Instead just output the unaligned text. --- diff --git a/src/df.c b/src/df.c index 14f07905d3..a049980ec9 100644 --- a/src/df.c +++ b/src/df.c @@ -215,7 +215,7 @@ print_table (void) { size_t width = widths[field]; char *cell = table[row][field]; - if (!cell) + if (!cell) /* Missing type column, or mount point etc. */ continue; /* Note the DEV_FIELD used to be displayed on it's own line @@ -227,9 +227,9 @@ print_table (void) fputs (cell, stdout); else { - cell = ambsalign (table[row][field], &width, - alignments[field], MBA_UNIBYTE_FALLBACK); - fputs (cell, stdout); + cell = ambsalign (cell, &width, alignments[field], 0); + /* When ambsalign fails, output unaligned data. */ + fputs (cell ? cell : table[row][field], stdout); free (cell); } IF_LINT (free (table[row][field]));