Short:
Uncaught read of zero length files with subsequent call of gethostbyname() produced error messages.
Description:
Set up new queue (named seti) to make acquaintance with GNU queue. Apparantly, this left some zero length files) in the CFDIR of the queue.
-rw------- 1 root 0 Nov 1 17:05 cfm537130463
-rw------- 1 root 0 Nov 1 17:06 cfm537130671
-rw------- 1 root 0 Nov 1 17:17 cfm537141410
Now, calls to a non existing queue (for example bla)
>queue -d bla -- hostname
produced this error (in the window that started the queued):
gethostbyname on џОнt returned error.
gethostbyname on џОнt returned error.
Fix:
--- queue-1.20.2/queued.c Sun Sep 10 02:14:22 2000
+++ queued.c Wed Nov 1 19:20:15 2000
@@ -2144,6 +2144,12 @@
return NULL;
}
+ if(sbuf.st_size==0){
+ mperror1("file %s has 0 length", filename);
+ fprintf(stderr, "%s/%s has 0 length", filename);
+ return NULL;
+ }
+
jp->j_seen = 1; /* we've seen this job */
jp->j_queue_b = qp; /* back pointer to queue_b */
/*2000/7/19 WGK Draft protocol changes. First thing in job control file is version
I'd strongly suggest to add
(void) fclose(f);
into the if-clause (as well as into some other clauses, so that the new diff now looks like this:
--- queue-1.20.2/queued.c Sun Sep 10 02:14:22 2000
+++ queued.c Thu Nov 2 10:08:19 2000
@@ -2141,6 +2141,14 @@
if( fstat(fileno(f), &sbuf) < 0 ){
mperror1("Can't fstat(%s)", filename);
+ (void) fclose(f);
+ return NULL;
+ }
+
+ if(sbuf.st_size==0){
+ mperror1("file %s has 0 length", filename);
+ (void) fclose(f);
+ fprintf(stderr, "%s/%s has 0 length", filename);
return NULL;
}
@@ -2172,6 +2180,7 @@
netfread(&(jp->j_mailflag), sizeof(int), 1, f); /* local uid running job */
if( ferror(f) ){
+ (void) fclose(f);
mperror1("Error reading '%s'", filename);
return NULL;
}
Added patch to patch DB.
Will add to CVS for 1.30 shortly; should be in next release.
Fixed. Added to queued.c in CVS repository.