- while (!feof (fid)) {
- buffer = (char *) realloc (buffer, size + BUFSIZE);
- if (buffer == NULL) {
- VERBOSE (ERROR, fprintf (stderr, "%s: can't allocate memory\n", progname));
- return 1;
- }
- memset (buffer + size, 0, BUFSIZE);
- n = fread (buffer + size, 1, BUFSIZE, fid);
- if (errno != 0) {
- VERBOSE (ERROR, fprintf (stderr, "%s: can't read data from file '%s'\n", progname, input));
- return 1;
+ if (fid) {
+ while (!feof (fid)) {
+ buffer = (char *) realloc (buffer, size + BUFSIZE);
+ if (buffer == NULL) {
+ VERBOSE (ERROR, fprintf (stderr, "%s: can't allocate memory\n", progname));
+ return 1;
+ }
+ memset (buffer + size, 0, BUFSIZE);
+ n = fread (buffer + size, 1, BUFSIZE, fid);
+ if (errno != 0) {
+ VERBOSE (ERROR, fprintf (stderr, "%s: can't read data from file '%s'\n", progname, input));
+ return 1;
+ }
+ size += BUFSIZE;