ps: fix SEGV on narrow screens. closes 8176

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
Denys Vlasenko 2015-07-01 19:07:24 +02:00
parent db31c637fa
commit c9091d8947

View File

@ -654,8 +654,8 @@ int ps_main(int argc UNUSED_PARAM, char **argv UNUSED_PARAM)
OPT_l = (1 << ENABLE_SELINUX) * (1 << ENABLE_FEATURE_SHOW_THREADS) * ENABLE_FEATURE_PS_LONG, OPT_l = (1 << ENABLE_SELINUX) * (1 << ENABLE_FEATURE_SHOW_THREADS) * ENABLE_FEATURE_PS_LONG,
}; };
#if ENABLE_FEATURE_PS_LONG #if ENABLE_FEATURE_PS_LONG
time_t now = now; time_t now = now; /* for compiler */
unsigned long uptime; unsigned long uptime = uptime;
#endif #endif
/* If we support any options, parse argv */ /* If we support any options, parse argv */
#if ENABLE_SELINUX || ENABLE_FEATURE_SHOW_THREADS || ENABLE_FEATURE_PS_WIDE || ENABLE_FEATURE_PS_LONG #if ENABLE_SELINUX || ENABLE_FEATURE_SHOW_THREADS || ENABLE_FEATURE_PS_WIDE || ENABLE_FEATURE_PS_LONG
@ -786,11 +786,13 @@ int ps_main(int argc UNUSED_PARAM, char **argv UNUSED_PARAM)
{ {
int sz = terminal_width - len; int sz = terminal_width - len;
if (sz >= 0) {
char buf[sz + 1]; char buf[sz + 1];
read_cmdline(buf, sz, p->pid, p->comm); read_cmdline(buf, sz, p->pid, p->comm);
puts(buf); puts(buf);
} }
} }
}
if (ENABLE_FEATURE_CLEAN_UP) if (ENABLE_FEATURE_CLEAN_UP)
clear_username_cache(); clear_username_cache();
return EXIT_SUCCESS; return EXIT_SUCCESS;