src/weblet/counter/counter.c 1.6

1.6 2009/09/23 18:42:29 angie
Fixed compiler warnings from gcc 4.3.3, mostly about system calls whose return values weren't checked and non-literal format strings with no args.
Index: src/weblet/counter/counter.c
===================================================================
RCS file: /projects/compbio/cvsroot/kent/src/weblet/counter/counter.c,v
retrieving revision 1.5
retrieving revision 1.6
diff -b -B -U 1000000 -r1.5 -r1.6
--- src/weblet/counter/counter.c	19 Aug 2009 23:35:58 -0000	1.5
+++ src/weblet/counter/counter.c	23 Sep 2009 18:42:29 -0000	1.6
@@ -1,92 +1,92 @@
 /* counter.c - A simple web hit counter. */
 #include "common.h"
 #include <time.h>
 #include "cheapcgi.h"
 #include "memgfx.h"
 #include "obscure.h"
 
 
 struct memGfx *makeCountPic(long count, MgFont *font)
 {
 char text[16];
 int textWidth, textHeight;
 int pixWidth, pixHeight;
 struct memGfx *mg;
 
 sprintf(text, "%ld", count);
 textWidth = mgFontStringWidth(font, text);
 textHeight = mgFontLineHeight(font);
 pixWidth = textWidth + 4;
 pixHeight = textHeight + 4;
 mg = mgNew(pixWidth, pixHeight);
 mgClearPixels(mg);
 mgTextCentered(mg, 0, 0, pixWidth, pixHeight, MG_BLACK, font, text);
 return mg;
 }
 
 long incCount(char *fileName, boolean saveWhence)
 /* Increment counter at start of file.  Add hit to end of file. 
  * Return count. */
 {
 long val = 0;
 FILE *f = fopen(fileName, "r+b");
 char *ip;
 int ipSize;
 time_t seconds = time(NULL);
 ip = getenv("REMOTE_HOST");
 if (ip == NULL || ip[0] == 0)
     ip = getenv("REMOTE_ADDR");
 if (ip == NULL)
     ip = "";
 ipSize = strlen(ip) + 1;
 
 if (f != NULL)
     {
-    fread(&val, sizeof(val), 1, f);
+    mustReadOne(f, val);
     rewind(f);
     }
 else
     {
     f = fopen(fileName, "wb");
     }
 ++val;
 if (f != NULL)
     {
     fwrite(&val, sizeof(val), 1, f);
     fseek(f, 0L, SEEK_END);
     fwrite(&seconds, sizeof(seconds), 1, f);
     fwrite(ip, ipSize, 1, f);
     if (saveWhence)
         {
         char *whence = getenv("HTTP_REFERER");
         int whenceSize;
         if (whence == NULL)
             whence = "";
         whenceSize = strlen(whence)+1;
         fwrite(whence, whenceSize, 1, f);
         }
     }
 return val;
 }
 
 int main(int argc, char *argv[])
 {
 char *counterFileName;
 long count;
 struct memGfx *mg;
 boolean saveWhence = cgiBoolean("whence");
 boolean mute = cgiBoolean("mute");
 
 counterFileName = cgiOptionalString("file");
 if (counterFileName == NULL)
     counterFileName = "default.ctr";
 count = incCount(counterFileName, saveWhence);
 
 if (mute)
     mg = mgNew(1, 1);
 else
     mg = makeCountPic(count, mgMediumFont());
 fprintf(stdout, "Content-type: image/gif\n\n");
 mgSaveToGif(stdout, mg, FALSE);
 return 0;
 }