On Mon, Jun 26, 2017 at 10:31 PM, Baruch Siach <bar...@tkos.co.il> wrote: > Hi Matthew, > > On Mon, Jun 26, 2017 at 08:45:42PM -0500, Matthew Weber wrote: >> On Mon, Jun 26, 2017 at 7:36 PM, Emmanuel Deloget <log...@free.fr> wrote: >> > On Mon, Jun 26, 2017 at 11:23 PM, Matthew Weber >> > <matthew.we...@rockwellcollins.com> wrote: >> >> On Mon, Jun 26, 2017 at 3:55 PM, Baruch Siach <bar...@tkos.co.il> wrote: >> >> > On Mon, Jun 26, 2017 at 03:33:09PM -0500, Matt Weber wrote: >> >> >> From: Jared Bents <jared.be...@rockwellcollins.com> >> >> >> >> >> >> Update to increase the pathname limit to the >> >> >> linux limit of 4096 characters. >> >> >> >> >> >> Similar patch: >> >> >> https://patchwork.openembedded.org/patch/131475/ >> >> >> >> >> >> Signed-off-by: Jared Bents <jared.be...@rockwellcollins.com> >> >> >> Signed-off-by: Matt Weber <matthew.we...@rockwellcollins.com> >> >> >> --- >> >> >> miscutils/makedevs.c | 4 ++-- >> >> >> 1 file changed, 2 insertions(+), 2 deletions(-) >> >> >> >> >> >> diff --git a/miscutils/makedevs.c b/miscutils/makedevs.c >> >> >> index 9e7ca34..0049edb 100644 >> >> >> --- a/miscutils/makedevs.c >> >> >> +++ b/miscutils/makedevs.c >> >> >> @@ -208,7 +208,7 @@ int makedevs_main(int argc UNUSED_PARAM, char >> >> >> **argv) >> >> >> unsigned count = 0; >> >> >> unsigned increment = 0; >> >> >> unsigned start = 0; >> >> >> - char name[41]; >> >> >> + char name[4096]; >> >> > >> >> > Why not use PATH_MAX here? >> >> >> >> Agree, that would be cleaner. Will submit v2 after some testing. >> >> >> >> That still leaves a hardcoded value in the sscanf of 4095........ >> >> should I add a comment to the affect we're assuming PATH_MAX is at >> >> least 4096? Maybe a check is also needed? >> > >> > >> > Alternatively you may use the m modifier, when implemented, to >> > auto-allocate >> > the name pointer. This way you don't have to hardcode anything in the >> > sscanf(), you let the library for the job for you. Later, you can check the >> > string length. >> > >> > Such a change would induce an allocation, a free but will also reduce stack >> > usage. >> > >> >> If we want to keep it all static, another option would be to stringify >> that define. >> (Courtesy Jared for this idea) >> >> + #define STRINGIFY(x) STRINGIFY2(x) >> + #define STRINGIFY2(x) #x >> ..... >> - if ((2 > sscanf(line, "%40s %c %o %40s %40s %u %u %u %u %u", >> + if ((2 > sscanf(line, "%" STRINGIFY(PATH_MAX) "s %c %o %40s %40s %u >> %u %u %u %u", > > You need 'STRINGIFY(PATH_MAX-1)'. I'm not sure this does what you mean. > > baruch > > -- > http://baruch.siach.name/blog/ ~. .~ Tk Open Systems > =}------------------------------------------------ooO--U--Ooo------------{= > - bar...@tkos.co.il - tel: +972.52.368.4656, http://www.tkos.co.il -
Apologies to anyone who got my last email outside of the mailing list. My email was blocked as I wasn't subscribed. The 'STRINGIFY(PATH_MAX)' is fine. A line was left out of the update for v2 of the patch. I had also changed 'char name[4096];' to 'char name[PATH_MAX+1];' to prevent an overflow. _______________________________________________ busybox mailing list busybox@busybox.net http://lists.busybox.net/mailman/listinfo/busybox