--- busybox-1.27.0.orig/procps/top.c +++ busybox-1.27.0/procps/top.c @@ -694,10 +694,14 @@ CALC_STAT(pcpu, (s->pcpu*pcpu_scale + pcpu_half) >> pcpu_shift); #endif - if (s->vsz >= 100000) - sprintf(vsz_str_buf, "%6ldm", s->vsz/1024); + if ((s->vsz / (1024 * 1024)) >= 100000) + snprintf(vsz_str_buf, sizeof(vsz_str_buf), "%6ldt", s->vsz/(1024 * 1024 * 1024)); + else if ((s->vsz / 1024) >= 100000) + snprintf(vsz_str_buf, sizeof(vsz_str_buf), "%6ldg", s->vsz/(1024 * 1024)); + else if (s->vsz >= 100000) + snprintf(vsz_str_buf, sizeof(vsz_str_buf), "%6ldm", s->vsz/1024); else - sprintf(vsz_str_buf, "%7lu", s->vsz); + snprintf(vsz_str_buf, sizeof(vsz_str_buf), "%7lu", s->vsz); /* PID PPID USER STAT VSZ %VSZ [%CPU] COMMAND */ col = snprintf(line_buf, scr_width, "\n" "%5u%6u %-8.8s %s%s" FMT