diff options
Diffstat (limited to 'mwrap_httpd.h')
-rw-r--r-- | mwrap_httpd.h | 18 |
1 files changed, 5 insertions, 13 deletions
diff --git a/mwrap_httpd.h b/mwrap_httpd.h index aa4574a..1f706ea 100644 --- a/mwrap_httpd.h +++ b/mwrap_httpd.h @@ -420,7 +420,7 @@ static off_t write_loc_name(FILE *fp, const struct src_loc *l) fprintf(fp, ":%zu", l->lineno); } if (l->bt_len) { - char **s = bt_syms(l->bt, l->bt_len); + AUTO_FREE char **s = bt_syms(l->bt, l->bt_len); if (!s) return -1; if (l->f) fputc('\n', fp); @@ -436,7 +436,6 @@ static off_t write_loc_name(FILE *fp, const struct src_loc *l) fputc('\n', fp); fputs(s[i], fp); } - free(s); } off_t end = ftello(fp); if (end < 0) { @@ -560,14 +559,12 @@ static enum mw_qev each_gt(struct mw_h1 *h1, struct mw_h1req *h1r, struct mw_membuf ln; FILE *lp = memstream_new(&ln); if (!lp) return h1_close(h1); - struct h1_src_loc *hslv = accumulate(min, &hslc, lp); + AUTO_FREE struct h1_src_loc *hslv = accumulate(min, &hslc, lp); if (!hslv) return h1_close(h1); - if (err_close(lp)) { - free(hslv); + if (err_close(lp)) return h1_close(h1); - } char *n = ln.ptr; for (size_t i = 0; i < hslc; ++i) { @@ -575,7 +572,6 @@ static enum mw_qev each_gt(struct mw_h1 *h1, struct mw_h1req *h1r, n += hslv[i].lname_len; if (hslv[i].lname_len < 0) { free(ln.ptr); - free(hslv); return h1_close(h1); } } @@ -628,7 +624,6 @@ static enum mw_qev each_gt(struct mw_h1 *h1, struct mw_h1req *h1r, write_html(fp, hsl->loc_name, hsl->lname_len); FPUTS("</a></td></tr>", fp); } - free(hslv); free(ln.ptr); FPUTS("</table></body></html>", fp); return h1_200(h1, fp, &mb); @@ -1041,7 +1036,6 @@ static void *h1d_run(void *x) /* pthread_create cb */ { struct mw_h1d *h1d = x; nfds_t i, nfds; - struct pollfd *pfd; int rc; struct mw_h1 *h1, *nxt; enum mw_qev ev; @@ -1053,7 +1047,7 @@ static void *h1d_run(void *x) /* pthread_create cb */ cds_list_for_each_entry_safe(h1, nxt, &h1d->conn, nd) if (poll_add(h1d, h1->fd, h1->events)) h1_close(h1); - pfd = poll_detach(h1d, &nfds); + AUTO_FREE struct pollfd *pfd = poll_detach(h1d, &nfds); rc = pfd ? poll(pfd, nfds, -1) : -1; if (rc < 0) { @@ -1083,10 +1077,8 @@ static void *h1d_run(void *x) /* pthread_create cb */ } } } - free(pfd); } - pfd = poll_detach(h1d, &nfds); - free(pfd); + free(poll_detach(h1d, &nfds)); cds_list_for_each_entry_safe(h1, nxt, &h1d->conn, nd) h1_close(h1); return NULL; |