Remove bad overflow check from plat/osx/libsys/brk.c
authorGeorge Koehler <xkernigh@netscape.net>
Sat, 3 Dec 2016 22:07:51 +0000 (17:07 -0500)
committerGeorge Koehler <xkernigh@netscape.net>
Sat, 3 Dec 2016 22:07:51 +0000 (17:07 -0500)
If I want to check for overflow, then I should check it before I do
base + incr, not after.

Now that I have no check, I am passing the overflowed base + incr to
brk1(), where it will probably fail the nbreak < segment check.

plat/osx/libsys/brk.c

index a732cac..9b58ca1 100644 (file)
@@ -76,20 +76,11 @@ int brk(void *addr)
 
 void *sbrk(int incr)
 {
-       char *base, *nbreak;
+       char *base;
 
        brk_init();
        base = cbreak;
-       nbreak = base + incr;
-
-       /* Did base + incr overflow? */
-       if ((incr < 0 && nbreak > base) ||
-           (incr > 0 && nbreak < base)) {
-               errno = ENOMEM;
-               return (void*)-1;
-       }
-
-       if (brk1(nbreak) < 0)
+       if (brk1(base + incr) < 0)
                return (void*)-1;
        return base;
 }