more toolchain + stage 1 updates
[hdw-linux/hdw-linux.git] / packages / base / gawk / gawk.patch
1 --- gawk-3.1.5.orig/io.c        2005-07-26 18:07:43.000000000 +0000
2 +++ gawk-3.1.5/io.c     2005-09-24 14:43:13.771380264 +0000
3 @@ -2480,9 +2480,12 @@
4  {
5         struct stat sbuf;
6         struct open_hook *oh;
7 +       int iop_malloced = FALSE;
8  
9 -       if (iop == NULL)
10 +       if (iop == NULL) {
11                 emalloc(iop, IOBUF *, sizeof(IOBUF), "iop_alloc");
12 +               iop_malloced = TRUE;
13 +       }
14         memset(iop, '\0', sizeof(IOBUF));
15         iop->flag = 0;
16         iop->fd = fd;
17 @@ -2495,7 +2498,8 @@
18         }
19  
20         if (iop->fd == INVALID_HANDLE) {
21 -               free(iop);
22 +               if (iop_malloced)
23 +                       free(iop);
24                 return NULL;
25         }
26         if (isatty(iop->fd))
27 @@ -2503,7 +2507,7 @@
28         iop->readsize = iop->size = optimal_bufsize(iop->fd, & sbuf);
29         iop->sbuf = sbuf;
30         if (do_lint && S_ISREG(sbuf.st_mode) && sbuf.st_size == 0)
31 -                       lintwarn(_("data file `%s' is empty"), name);
32 +               lintwarn(_("data file `%s' is empty"), name);
33         errno = 0;
34         iop->count = iop->scanoff = 0;
35         emalloc(iop->buf, char *, iop->size += 2, "iop_alloc");