commit 9ba6883355e13ee62710b44d346a0c04ebb3e797 from: Tracey Emery date: Tue Apr 14 17:40:42 2020 UTC remove all asprintf from gw_briefs commit - 038dfa29f61d88120145eb9869dca4ac5eefbcd5 commit + 9ba6883355e13ee62710b44d346a0c04ebb3e797 blob - ed7a10d66f1206514e63231ef2f2b16a1fa0465b blob + 6df005bec0d7e2bfd484def3ccba6273fb5fbafb --- gotweb/gotweb.c +++ gotweb/gotweb.c @@ -1131,7 +1131,7 @@ gw_briefs(struct gw_trans *gw_trans) { const struct got_error *error = NULL; struct gw_header *header = NULL, *n_header = NULL; - char *age = NULL, *href_diff = NULL, *href_blob = NULL; + char *age = NULL, *href_diff = NULL, *href_tree = NULL; char *href_prev = NULL, *href_next = NULL; char *newline, *smallerthan; enum kcgi_err kerr = KCGI_OK; @@ -1195,11 +1195,9 @@ gw_briefs(struct gw_trans *gw_trans) if (kerr != KCGI_OK) goto done; - if (asprintf(&href_diff, "?path=%s&action=diff&commit=%s", - gw_trans->repo_name, n_header->commit_id) == -1) { - error = got_error_from_errno("asprintf"); - goto done; - } + href_diff = khttp_urlpart(NULL, NULL, "gotweb", "path", + gw_trans->repo_name, "action", "diff", "commit", + n_header->commit_id, NULL); kerr = khtml_attr(gw_trans->gw_html_req, KELEM_DIV, KATTR_ID, "briefs_log", KATTR__MAX); if (kerr != KCGI_OK) @@ -1262,13 +1260,11 @@ gw_briefs(struct gw_trans *gw_trans) if (kerr != KCGI_OK) goto done; - if (asprintf(&href_blob, "?path=%s&action=tree&commit=%s", - gw_trans->repo_name, n_header->commit_id) == -1) { - error = got_error_from_errno("asprintf"); - goto done; - } + href_tree = khttp_urlpart(NULL, NULL, "gotweb", "path", + gw_trans->repo_name, "action", "tree", "commit", + n_header->commit_id, NULL); kerr = khtml_attr(gw_trans->gw_html_req, KELEM_A, - KATTR_HREF, href_blob, KATTR__MAX); + KATTR_HREF, href_tree, KATTR__MAX); if (kerr != KCGI_OK) goto done; khtml_puts(gw_trans->gw_html_req, "tree"); @@ -1291,8 +1287,8 @@ gw_briefs(struct gw_trans *gw_trans) age = NULL; free(href_diff); href_diff = NULL; - free(href_blob); - href_blob = NULL; + free(href_tree); + href_tree = NULL; } if (gw_trans->next_id || gw_trans->page > 0) { @@ -1307,15 +1303,13 @@ gw_briefs(struct gw_trans *gw_trans) } if (gw_trans->page > 0 && gw_trans->prev_id) { - if (asprintf(&href_prev, - "?path=%s&page=%d&action=briefs&commit=%s&prev=%s", - gw_trans->repo_name, gw_trans->page - 1, - gw_trans->prev_id ? gw_trans->prev_id : "", - gw_trans->prev_prev_id ? - gw_trans->prev_prev_id : "") == -1) { - error = got_error_from_errno("asprintf"); - goto done; - } + href_prev = khttp_urlpartx(NULL, NULL, "gotweb", "path", + KATTRX_STRING, gw_trans->repo_name, "page", + KATTRX_INT, (int64_t) (gw_trans->page - 1), "action", + KATTRX_STRING, "briefs", "commit", KATTRX_STRING, + gw_trans->prev_id ? gw_trans->prev_id : "", "prev", + KATTRX_STRING, gw_trans->prev_prev_id ? + gw_trans->prev_prev_id : "", NULL); kerr = khtml_attr(gw_trans->gw_html_req, KELEM_A, KATTR_HREF, href_prev, KATTR__MAX); if (kerr != KCGI_OK) @@ -1339,17 +1333,15 @@ gw_briefs(struct gw_trans *gw_trans) KATTR_ID, "nav_next", KATTR__MAX); if (kerr != KCGI_OK) goto done; - if (asprintf(&href_next, - "?path=%s&page=%d&action=briefs" \ - "&commit=%s&prev=%s&prev_prev=%s", - gw_trans->repo_name, gw_trans->page + 1, - gw_trans->next_id, + + href_next = khttp_urlpartx(NULL, NULL, "gotweb", "path", + KATTRX_STRING, gw_trans->repo_name, "page", + KATTRX_INT, (int64_t) (gw_trans->page + 1), "action", + KATTRX_STRING, "briefs", "commit", KATTRX_STRING, + gw_trans->next_id, "prev", KATTRX_STRING, gw_trans->next_prev_id ? gw_trans->next_prev_id : "", - gw_trans->prev_id ? - gw_trans->prev_id : "") == -1) { - error = got_error_from_errno("calloc"); - goto done; - } + "prev_prev", KATTRX_STRING, gw_trans->prev_id ? + gw_trans->prev_id : "", NULL), kerr = khtml_attr(gw_trans->gw_html_req, KELEM_A, KATTR_HREF, href_next, KATTR__MAX); if (kerr != KCGI_OK) @@ -1375,7 +1367,7 @@ done: free(href_next); free(href_prev); free(href_diff); - free(href_blob); + free(href_tree); if (error == NULL && kerr != KCGI_OK) error = gw_kcgi_error(kerr); return error;