Hi Rob, hey I was deeply asleep and ... ding... you're pinging me!
I hope that you are well, the health, the life, etc... Do you plan to come in europe soon? I'm not sure to really understand the reason why this mail has flawn to my box. Is it because the patch of Colin Cross looks like mine? That is a debate: in how many ways can a problem be fixed? Colin made the same job as me (but he missed to use the const keyword). I'm not really focused on putting my name anywhere. Having a version of toybox that isn't buggy for that vintage command 'vm' is a need. Best wishes Jose Bollo Le mardi 01 septembre 2015 à 14:44 -0700, enh a écrit : > ping. > > here's yet another patch from the third person to hit this > (https://android-review.googlesource.com/#/c/169242/): > > Author: Colin Cross <[email protected]> > Date: Tue Sep 1 14:32:59 2015 -0700 > > vmstat: reset header pointer when looping > > Modifying the headers pointer when printing the headers causes > a buffer overrun the second time they are printed. Use a local > header pointer that is reset to the beginning of the buffer for > each loop. > > Change-Id: Id2520b78255833197b4075f789766395bc36f218 > > diff --git a/toys/other/vmstat.c b/toys/other/vmstat.c > index 9a38e45..5b79702 100644 > --- a/toys/other/vmstat.c > +++ b/toys/other/vmstat.c > @@ -96,14 +96,14 @@ void vmstat_main(void) > > // Print headers > if (rows>3 && !(loop % (rows-3))) { > + const char *header = headers; > if (isatty(1)) terminal_size(0, &rows); > else rows = 0; > > printf("procs -----------memory---------- ---swap-- -----io---- > -system-- ----cpu----\n"); > - > for (i=0; i<sizeof(lengths); i++) { > - printf(" %*s"+!i, lengths[i], headers); > - headers += strlen(headers)+1; > + printf(" %*s"+!i, lengths[i], header); > + header += strlen(header)+1; > } > xputc('\n'); > } > > > On Mon, May 11, 2015 at 1:22 AM, José Bollo <[email protected]> wrote: > > Please find here an alternate proposal for fixing that issue. > > Best regards > > José > > > > > > diff --git a/toys/other/vmstat.c b/toys/other/vmstat.c > > index eed7945..0884fe9 100644 > > --- a/toys/other/vmstat.c > > +++ b/toys/other/vmstat.c > > @@ -93,14 +93,15 @@ void vmstat_main(void) > > > > // Print headers > > if (rows>3 && !(loop % (rows-3))) { > > + char *h = headers; > > if (isatty(1)) terminal_size(0, &rows); > > else rows = 0; > > > > printf("procs -----------memory---------- ---swap-- -----io---- > > -system-- ----cpu----\n"); > > > > for (i=0; i<sizeof(lengths); i++) { > > - printf(" %*s"+!i, lengths[i], headers); > > - headers += strlen(headers)+1; > > + printf(" %*s"+!i, lengths[i], h++); > > + while(*h++ != 0); > > } > > xputc('\n'); > > } > > > > > > > > _______________________________________________ > > Toybox mailing list > > [email protected] > > http://lists.landley.net/listinfo.cgi/toybox-landley.net > > > _______________________________________________ Toybox mailing list [email protected] http://lists.landley.net/listinfo.cgi/toybox-landley.net
