psendfile: Fixed crash when files cannot be opened.
[ashd.git] / src / psendfile.c
index 52ec9dc..f5c7fdd 100644 (file)
@@ -238,7 +238,7 @@ static void serve(struct muth *muth, va_list args)
        simpleerror2(out, 404, "Not Found", "The requested URL has no corresponding resource.");
        goto out;
     }
-    if(((sfile = fopen(file, "r")) < 0) || fstat(fileno(sfile), &sb)) {
+    if(((sfile = fopen(file, "r")) == NULL) || fstat(fileno(sfile), &sb)) {
        flog(LOG_ERR, "psendfile: could not stat input file %s: %s", file, strerror(errno));
        simpleerror2(out, 500, "Internal Error", "The server could not access its own data.");
        goto out;
@@ -268,7 +268,8 @@ static void serve(struct muth *muth, va_list args)
 out:
     if(sfile != NULL)
        fclose(sfile);
-    free(contype);
+    if(contype != NULL)
+       free(contype);
     fclose(out);
     freehthead(req);
 }