FIX: webgit_mimetype() to return strduped buffer or NULL
authorChristian Thaeter <ct@pipapo.org>
Tue, 8 Jan 2008 05:45:50 +0000 (06:45 +0100)
committerChristian Thaeter <ct@pipapo.org>
Tue, 8 Jan 2008 05:45:50 +0000 (06:45 +0100)
src/webgit.c

index ffbf9bf..5fe7484 100644 (file)
@@ -104,16 +104,19 @@ webgit_mimetype (const char* name)
 {
   char buf[256];
 
+  if (!name)
+    return NULL;
+
   char* ext = strrchr (name, '.');
   if (!ext)
-    return "";
+    return NULL;
   ++ext;
   if (!*ext)
-    return "";
+    return NULL;
 
   FILE* mime_types = fopen ("/etc/mime.types", "r");
   if (!mime_types)
-    return "";
+    return NULL;
 
   while (fgets (buf, 256, mime_types))
     {
@@ -123,13 +126,12 @@ webgit_mimetype (const char* name)
       char* suffix;
       while ((suffix = strtok (NULL, " \t\n")))
         if (!strcmp (suffix, ext))
-          goto done;
+          {
+            fclose (mime_types);
+            return cwa_strndup (buf, SIZE_MAX);
+          }
     }
-  *buf = '\0';
-
- done:
-  fclose (mime_types);
-  return cwa_strndup (buf, SIZE_MAX);
+  return NULL;
 }