From 0e52541917a80a4c5aee9d32fcc81cf9967f2aed Mon Sep 17 00:00:00 2001 From: Denis Vlasenko Date: Fri, 11 Jul 2008 13:57:08 +0000 Subject: taskset: fix some careless code in both fancy and non-fancy cases. -5 bytes for fancy, +5 for non-fancy --- miscutils/last.c | 2 ++ miscutils/taskset.c | 48 +++++++++++++++++++++++++++++++++++------------- 2 files changed, 37 insertions(+), 13 deletions(-) (limited to 'miscutils') diff --git a/miscutils/last.c b/miscutils/last.c index 8c8192bee..f8c301395 100644 --- a/miscutils/last.c +++ b/miscutils/last.c @@ -117,6 +117,8 @@ int last_main(int argc, char **argv UNUSED_PARAM) strcpy(ut.ut_line, "system boot"); } } + /* manpages say ut_tv.tv_sec *is* time_t, + * but some systems have it wrong */ t_tmp = (time_t)ut.ut_tv.tv_sec; printf("%-10s %-14s %-18s %-12.12s\n", ut.ut_user, ut.ut_line, ut.ut_host, ctime(&t_tmp) + 4); diff --git a/miscutils/taskset.c b/miscutils/taskset.c index 3175af10d..b43d42e90 100644 --- a/miscutils/taskset.c +++ b/miscutils/taskset.c @@ -11,31 +11,53 @@ #if ENABLE_FEATURE_TASKSET_FANCY #define TASKSET_PRINTF_MASK "%s" -#define from_cpuset(x) __from_cpuset(&x) /* craft a string from the mask */ -static char *__from_cpuset(cpu_set_t *mask) +static char *from_cpuset(cpu_set_t *mask) { int i; - char *ret = 0, *str = xzalloc(9); + char *ret = NULL; + char *str = xzalloc((CPU_SETSIZE / 4) + 1); /* we will leak it */ for (i = CPU_SETSIZE - 4; i >= 0; i -= 4) { - char val = 0; + int val = 0; int off; for (off = 0; off <= 3; ++off) - if (CPU_ISSET(i+off, mask)) - val |= 1<", * or it was "-p " and we came here -- cgit v1.2.3