Baruch/Emmanuel, On Mon, Jun 26, 2017 at 7:36 PM, Emmanuel Deloget <log...@free.fr> wrote: > Hello, > > On Mon, Jun 26, 2017 at 11:23 PM, Matthew Weber > <matthew.we...@rockwellcollins.com> wrote: >> >> Baruch, >> >> On Mon, Jun 26, 2017 at 3:55 PM, Baruch Siach <bar...@tkos.co.il> wrote: >> > Hi Jared, >> > >> > 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", Matt _______________________________________________ busybox mailing list busybox@busybox.net http://lists.busybox.net/mailman/listinfo/busybox