Fixed a couple of bugs in dirplex.
authorFredrik Tolf <fredrik@dolda2000.com>
Mon, 22 Dec 2008 04:03:28 +0000 (05:03 +0100)
committerFredrik Tolf <fredrik@dolda2000.com>
Mon, 22 Dec 2008 04:03:28 +0000 (05:03 +0100)
lib/proc.c
src/dirplex.c

index 957cfce..f4611d5 100644 (file)
@@ -163,6 +163,5 @@ pid_t stdforkserve(char **argv, struct hthead *req, int fd)
        flog(LOG_WARNING, "could not exec child program %s: %s", argv[0], strerror(errno));
        exit(127);
     }
-    close(fd);
     return(pid);
 }
index ef001cf..063fbb4 100644 (file)
@@ -150,7 +150,7 @@ static struct rule *newrule(struct pattern *pat)
     
     for(i = 0; pat->rules[i]; i++);
     pat->rules = srealloc(pat->rules, sizeof(*pat->rules) * (i + 2));
-    rule = pat->rules[i] = smalloc(sizeof(*rule));
+    rule = pat->rules[i] = szmalloc(sizeof(*rule));
     pat->rules[i + 1] = NULL;
     return(rule);
 }
@@ -181,9 +181,10 @@ static struct config *readconfig(char *path)
     struct rule *rule;
     struct stat sb;
     
-    if(stat(path, &sb))
+    p = sprintf3("%s/.htrc", path);
+    if(stat(p, &sb))
        return(NULL);
-    if((s = fopen(sprintf3("%s/.htrc", path), "r")) == NULL)
+    if((s = fopen(p, "r")) == NULL)
        return(NULL);
     omalloc(cf);
     cf->mtime = sb.st_mtime;
@@ -332,7 +333,7 @@ static struct config *getconfig(char *path)
     
     for(cf = cflist; cf != NULL; cf = cf->next) {
        if(!strcmp(cf->path, path)) {
-           if(stat(path, &sb))
+           if(stat(sprintf3("%s/.htrc", path), &sb))
                return(NULL);
            if(sb.st_mtime != cf->mtime) {
                freeconfig(cf);