mirror of the now-defunct rocklinux.org
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

57 lines
1.8 KiB

  1. # --- ROCK-COPYRIGHT-NOTE-BEGIN ---
  2. #
  3. # This copyright note is auto-generated by ./scripts/Create-CopyPatch.
  4. # Please add additional copyright information _after_ the line containing
  5. # the ROCK-COPYRIGHT-NOTE-END tag. Otherwise it might get removed by
  6. # the ./scripts/Create-CopyPatch script. Do not edit this copyright text!
  7. #
  8. # ROCK Linux: rock-src/package/base/gawk/no_such_file_fix.patch
  9. # ROCK Linux is Copyright (C) 1998 - 2006 Clifford Wolf
  10. #
  11. # This patch file is dual-licensed. It is available under the license the
  12. # patched project is licensed under, as long as it is an OpenSource license
  13. # as defined at http://www.opensource.org/ (e.g. BSD, X11) or under the terms
  14. # of the GNU General Public License as published by the Free Software
  15. # Foundation; either version 2 of the License, or (at your option) any later
  16. # version.
  17. #
  18. # --- ROCK-COPYRIGHT-NOTE-END ---
  19. http://lists.gnu.org/archive/html/bug-gnu-utils/2005-08/msg00047.html
  20. --- ./io.c 2005-07-26 21:07:43.000000000 +0300
  21. +++ ./io.c 2005-08-12 13:10:28.239852344 +0300
  22. @@ -2480,9 +2480,12 @@
  23. {
  24. struct stat sbuf;
  25. struct open_hook *oh;
  26. + int iop_malloced = FALSE;
  27. - if (iop == NULL)
  28. + if (iop == NULL) {
  29. emalloc(iop, IOBUF *, sizeof(IOBUF), "iop_alloc");
  30. + iop_malloced = TRUE;
  31. + }
  32. memset(iop, '\0', sizeof(IOBUF));
  33. iop->flag = 0;
  34. iop->fd = fd;
  35. @@ -2495,7 +2498,8 @@
  36. }
  37. if (iop->fd == INVALID_HANDLE) {
  38. - free(iop);
  39. + if (iop_malloced)
  40. + free(iop);
  41. return NULL;
  42. }
  43. if (isatty(iop->fd))
  44. @@ -2503,7 +2507,7 @@
  45. iop->readsize = iop->size = optimal_bufsize(iop->fd, & sbuf);
  46. iop->sbuf = sbuf;
  47. if (do_lint && S_ISREG(sbuf.st_mode) && sbuf.st_size == 0)
  48. - lintwarn(_("data file `%s' is empty"), name);
  49. + lintwarn(_("data file `%s' is empty"), name);
  50. errno = 0;
  51. iop->count = iop->scanoff = 0;
  52. emalloc(iop->buf, char *, iop->size += 2, "iop_alloc");