--- 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