[Rd] [PATCH] Fix fscanf specifier in InIntegerAscii

Martin Maechler maechler at stat.math.ethz.ch
Fri Jul 21 17:35:12 CEST 2017


>>>>> Steve Grubb <sgrubb at redhat.com>
>>>>>     on Thu, 20 Jul 2017 17:28:53 -0400 writes:

    > Hello,
    > The SMBUF_SIZED_STRING allows fscanf to read upto 511 bytes. The buffer
    > at line 1382 is only 128 bytes. The fscanf format specifier ought to be
    > resized to prevent a stack overrun.

Yes, you are right, thank you!

Fix committed as svn rev  72945



    > Signed-of-by: Steve Grubb <sgrubb at redhat.com>

    > Index: saveload.c
    > ===================================================================
    > --- src/main/saveload.c	(revision 72935)
    > +++ src/main/saveload.c	(working copy)
    > @@ -1379,7 +1379,7 @@
    > {
    > char buf[128];
    > int x, res;
    > -    res = fscanf(fp, SMBUF_SIZED_STRING, buf);
    > +    res = fscanf(fp, "%127s", buf);
    > if(res != 1) error(_("read error"));
    > if (strcmp(buf, "NA") == 0)
    > return NA_INTEGER;

    > ______________________________________________
    > R-devel at r-project.org mailing list
    > https://stat.ethz.ch/mailman/listinfo/r-devel



More information about the R-devel mailing list