Dolda2000 GitWeb
/
ashd.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
call[fs]cgi: Ensure exit handlers are not called in failing children.
[ashd.git]
/
src
/
callfcgi.c
diff --git
a/src/callfcgi.c
b/src/callfcgi.c
index
d36e98c
..
a6d3945
100644
(file)
--- a/
src/callfcgi.c
+++ b/
src/callfcgi.c
@@
-208,7
+208,7
@@
static void startlisten(void)
close(i);
execvp(*progspec, progspec);
flog(LOG_ERR, "callfcgi: %s: %s", *progspec, strerror(errno));
close(i);
execvp(*progspec, progspec);
flog(LOG_ERR, "callfcgi: %s: %s", *progspec, strerror(errno));
- exit(127);
+
_
exit(127);
}
close(fd);
}
}
close(fd);
}
@@
-226,13
+226,13
@@
static void startnolisten(void)
close(i);
if((fd = open("/dev/null", O_RDONLY)) < 0) {
flog(LOG_ERR, "/dev/null: %s", strerror(errno));
close(i);
if((fd = open("/dev/null", O_RDONLY)) < 0) {
flog(LOG_ERR, "/dev/null: %s", strerror(errno));
- exit(127);
+
_
exit(127);
}
dup2(fd, 0);
close(fd);
execvp(*progspec, progspec);
flog(LOG_ERR, "callfcgi: %s: %s", *progspec, strerror(errno));
}
dup2(fd, 0);
close(fd);
execvp(*progspec, progspec);
flog(LOG_ERR, "callfcgi: %s: %s", *progspec, strerror(errno));
- exit(127);
+
_
exit(127);
}
}
}
}
@@
-611,12
+611,12
@@
static int recvrec(FILE *in, int *type, int *rid, char **data, size_t *dlen)
return(-1);
*data = smalloc(max(*dlen, 1));
if(fread(*data, 1, *dlen, in) != *dlen) {
return(-1);
*data = smalloc(max(*dlen, 1));
if(fread(*data, 1, *dlen, in) != *dlen) {
- free(data);
+ free(
*
data);
return(-1);
}
for(; pl > 0; pl--) {
if(fgetc(in) == EOF) {
return(-1);
}
for(; pl > 0; pl--) {
if(fgetc(in) == EOF) {
- free(data);
+ free(
*
data);
return(-1);
}
}
return(-1);
}
}