purge uses of alloca
authorSam Leffler <sam@ucbvax.Berkeley.EDU>
Fri, 23 Dec 1988 04:59:01 +0000 (20:59 -0800)
committerSam Leffler <sam@ucbvax.Berkeley.EDU>
Fri, 23 Dec 1988 04:59:01 +0000 (20:59 -0800)
SCCS-vsn: local/sccscmds/sccscmds.2/util/xcreat.c 1.3
SCCS-vsn: local/sccscmds/sccscmds.ok/util/xcreat.c 1.3
SCCS-vsn: local/sccscmds/sccscmds.2/util/xmsg.c 1.2
SCCS-vsn: local/sccscmds/sccscmds.ok/util/xmsg.c 1.2
SCCS-vsn: local/sccscmds/sccscmds.2/com/dodelt.c 1.5
SCCS-vsn: local/sccscmds/sccscmds.ok/com/dodelt.c 1.5
SCCS-vsn: local/sccscmds/sccscmds.2/com/pf_ab.c 1.5
SCCS-vsn: local/sccscmds/sccscmds.ok/com/pf_ab.c 1.5

usr/src/local/sccscmds/sccscmds.2/com/dodelt.c
usr/src/local/sccscmds/sccscmds.2/com/pf_ab.c
usr/src/local/sccscmds/sccscmds.2/util/xcreat.c
usr/src/local/sccscmds/sccscmds.2/util/xmsg.c
usr/src/local/sccscmds/sccscmds.ok/com/dodelt.c
usr/src/local/sccscmds/sccscmds.ok/com/pf_ab.c
usr/src/local/sccscmds/sccscmds.ok/util/xcreat.c
usr/src/local/sccscmds/sccscmds.ok/util/xmsg.c

index 152a9f3..680483c 100644 (file)
@@ -109,8 +109,9 @@ struct ixg *ixgp;
        int *v, *ip;
        int type, cnt;
        struct ixg *cur, *prev;
        int *v, *ip;
        int type, cnt;
        struct ixg *cur, *prev;
+       char buf[BUFSIZ];
 
 
-       v = ip = alloca(BUFSIZ);
+       v = ip = (int *)buf;
        ++p;
        type = *p++;
        NONBLANK(p);
        ++p;
        type = *p++;
        NONBLANK(p);
index f8ce90a..d12b5c5 100644 (file)
@@ -1,6 +1,6 @@
 # include      "../hdr/defines.h"
 
 # include      "../hdr/defines.h"
 
-static char Sccsid[] = "@(#)pf_ab.c    1.4     %G%";
+static char Sccsid[] = "@(#)pf_ab.c    1.5     %G%";
 
 pf_ab(s,pp,all)
 char *s;
 
 pf_ab(s,pp,all)
 char *s;
@@ -10,9 +10,9 @@ int all;
        register char *p;
        register int i;
        extern char *Datep;
        register char *p;
        register int i;
        extern char *Datep;
-       char *xp;
+       char *xp, *buf;
 
 
-       xp = p = alloca(size(s));
+       xp = p = buf = alloc(size(s));
        copy(s,p);
        for (; *p; p++)
                if (*p == '\n') {
        copy(s,p);
        for (; *p; p++)
                if (*p == '\n') {
@@ -37,8 +37,10 @@ int all;
        p = Datep;
        pp->pf_ilist = 0;
        pp->pf_elist = 0;
        p = Datep;
        pp->pf_ilist = 0;
        pp->pf_elist = 0;
-       if (!all || !*p)
+       if (!all || !*p) {
+               free(buf);
                return;
                return;
+       }
        p += 2;
        xp = alloc(size(p));
        copy(p,xp);
        p += 2;
        xp = alloc(size(p));
        copy(p,xp);
@@ -54,4 +56,5 @@ int all;
        }
        if (*p == 'x')
                pp->pf_elist = ++p;
        }
        if (*p == 'x')
                pp->pf_elist = ++p;
+       free(buf);
 }
 }
index ad6034d..0ef852f 100644 (file)
@@ -17,12 +17,14 @@ int mode;
        register int fd;
        register char *d;
 
        register int fd;
        register char *d;
 
-       d = alloca(size(name));
+       d = alloc(size(name));
        copy(name,d);
        if (!exists(dname(d))) {
        copy(name,d);
        if (!exists(dname(d))) {
+               free(d);
                sprintf(Error,"directory `%s' nonexistent (ut1)",d);
                fatal(Error);
        }
                sprintf(Error,"directory `%s' nonexistent (ut1)",d);
                fatal(Error);
        }
+       free(d);
        unlink(name);
        if ((fd = creat(name,mode)) >= 0)
                return(fd);
        unlink(name);
        if ((fd = creat(name,mode)) >= 0)
                return(fd);
index 08d935d..7bb56c8 100644 (file)
@@ -25,7 +25,7 @@ char *file, *func;
                sprintf(str = Error,"`%s' nonexistent (ut4)",file);
                break;
        case EACCES:
                sprintf(str = Error,"`%s' nonexistent (ut4)",file);
                break;
        case EACCES:
-               str = alloca(size(file));
+               str = malloc(size(file));
                copy(file,str);
                file = str;
                sprintf(str = Error,"directory `%s' unwritable (ut2)",
                copy(file,str);
                file = str;
                sprintf(str = Error,"directory `%s' unwritable (ut2)",
index 152a9f3..680483c 100644 (file)
@@ -109,8 +109,9 @@ struct ixg *ixgp;
        int *v, *ip;
        int type, cnt;
        struct ixg *cur, *prev;
        int *v, *ip;
        int type, cnt;
        struct ixg *cur, *prev;
+       char buf[BUFSIZ];
 
 
-       v = ip = alloca(BUFSIZ);
+       v = ip = (int *)buf;
        ++p;
        type = *p++;
        NONBLANK(p);
        ++p;
        type = *p++;
        NONBLANK(p);
index f8ce90a..d12b5c5 100644 (file)
@@ -1,6 +1,6 @@
 # include      "../hdr/defines.h"
 
 # include      "../hdr/defines.h"
 
-static char Sccsid[] = "@(#)pf_ab.c    1.4     %G%";
+static char Sccsid[] = "@(#)pf_ab.c    1.5     %G%";
 
 pf_ab(s,pp,all)
 char *s;
 
 pf_ab(s,pp,all)
 char *s;
@@ -10,9 +10,9 @@ int all;
        register char *p;
        register int i;
        extern char *Datep;
        register char *p;
        register int i;
        extern char *Datep;
-       char *xp;
+       char *xp, *buf;
 
 
-       xp = p = alloca(size(s));
+       xp = p = buf = alloc(size(s));
        copy(s,p);
        for (; *p; p++)
                if (*p == '\n') {
        copy(s,p);
        for (; *p; p++)
                if (*p == '\n') {
@@ -37,8 +37,10 @@ int all;
        p = Datep;
        pp->pf_ilist = 0;
        pp->pf_elist = 0;
        p = Datep;
        pp->pf_ilist = 0;
        pp->pf_elist = 0;
-       if (!all || !*p)
+       if (!all || !*p) {
+               free(buf);
                return;
                return;
+       }
        p += 2;
        xp = alloc(size(p));
        copy(p,xp);
        p += 2;
        xp = alloc(size(p));
        copy(p,xp);
@@ -54,4 +56,5 @@ int all;
        }
        if (*p == 'x')
                pp->pf_elist = ++p;
        }
        if (*p == 'x')
                pp->pf_elist = ++p;
+       free(buf);
 }
 }
index ad6034d..0ef852f 100644 (file)
@@ -17,12 +17,14 @@ int mode;
        register int fd;
        register char *d;
 
        register int fd;
        register char *d;
 
-       d = alloca(size(name));
+       d = alloc(size(name));
        copy(name,d);
        if (!exists(dname(d))) {
        copy(name,d);
        if (!exists(dname(d))) {
+               free(d);
                sprintf(Error,"directory `%s' nonexistent (ut1)",d);
                fatal(Error);
        }
                sprintf(Error,"directory `%s' nonexistent (ut1)",d);
                fatal(Error);
        }
+       free(d);
        unlink(name);
        if ((fd = creat(name,mode)) >= 0)
                return(fd);
        unlink(name);
        if ((fd = creat(name,mode)) >= 0)
                return(fd);
index 08d935d..7bb56c8 100644 (file)
@@ -25,7 +25,7 @@ char *file, *func;
                sprintf(str = Error,"`%s' nonexistent (ut4)",file);
                break;
        case EACCES:
                sprintf(str = Error,"`%s' nonexistent (ut4)",file);
                break;
        case EACCES:
-               str = alloca(size(file));
+               str = malloc(size(file));
                copy(file,str);
                file = str;
                sprintf(str = Error,"directory `%s' unwritable (ut2)",
                copy(file,str);
                file = str;
                sprintf(str = Error,"directory `%s' unwritable (ut2)",