summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDenis Vlasenko2007-03-28 21:57:12 +0000
committerDenis Vlasenko2007-03-28 21:57:12 +0000
commit450196c119e22268c9176cb7887cceb22bf8e9ff (patch)
treee4a76e61f40840b4dcf2015d55f9ecfa93a8ee23
parentb7cffd4bedf14770a7096a11a6e46cc497ff37c6 (diff)
downloadbusybox-450196c119e22268c9176cb7887cceb22bf8e9ff.zip
busybox-450196c119e22268c9176cb7887cceb22bf8e9ff.tar.gz
ps: work around libc bug: printf("%.*s\n", MAX_INT, buffer)
-rw-r--r--libbb/xfuncs.c6
-rw-r--r--procps/ps.c4
2 files changed, 6 insertions, 4 deletions
diff --git a/libbb/xfuncs.c b/libbb/xfuncs.c
index e1632a4..68ad3de 100644
--- a/libbb/xfuncs.c
+++ b/libbb/xfuncs.c
@@ -253,9 +253,9 @@ void smart_ulltoa5(unsigned long long ul, char buf[5])
buf[4] = '\0';
}
-// Convert unsigned integer to ascii, writing into supplied buffer. A
-// truncated result is always null terminated (unless buflen is 0), and
-// contains the first few digits of the result ala strncpy.
+// Convert unsigned integer to ascii, writing into supplied buffer.
+// A truncated result contains the first few digits of the result ala strncpy.
+// Returns a pointer past last generated digit, does _not_ store NUL.
void BUG_sizeof_unsigned_not_4(void);
char *utoa_to_buf(unsigned n, char *buf, unsigned buflen)
{
diff --git a/procps/ps.c b/procps/ps.c
index c1cb643..2be0b36 100644
--- a/procps/ps.c
+++ b/procps/ps.c
@@ -262,7 +262,9 @@ int ps_main(int argc, char **argv)
parse_o(default_o);
post_process();
- terminal_width = INT_MAX;
+ /* Was INT_MAX, but some libc's go belly up with printf("%.*s")
+ * and such large widths */
+ terminal_width = 30000;
if (isatty(1)) {
get_terminal_width_height(1, &terminal_width, NULL);
terminal_width--;