{"thread":{"id":"37454","subject":"[PATCH] http-walker: simplify process_alternates_response() using strbuf","startedAt":"2014-08-30T15:55:45Z","lastAt":"2014-08-30T15:55:45Z","messageCount":1,"participants":["René Scharfe"],"isPatch":true,"patchVersion":1,"patchTotal":null},"messages":[{"id":"248652","messageId":"5401F401.8040607@web.de","threadId":"37454","inReplyTo":null,"subject":"[PATCH] http-walker: simplify process_alternates_response() using strbuf","fromName":"René Scharfe","fromEmail":"l.s.r@web.de","sentAt":"2014-08-30T15:55:45Z","receivedAt":"2014-08-30T15:55:45Z","isPatch":true,"sender":{"key":"l.s.r@web.de","avatar":"https://avatars.githubusercontent.com/u/26122331?v=4"},"body":"Use strbuf to build the new base, which takes care of allocations and\nthe terminating NUL character automatically.\n\nSigned-off-by: Rene Scharfe <l.s.r@web.de>\n---\n http-walker.c | 15 ++++++---------\n 1 file changed, 6 insertions(+), 9 deletions(-)\n\ndiff --git a/http-walker.c b/http-walker.c\nindex dbddfaa..88da546 100644\n--- a/http-walker.c\n+++ b/http-walker.c\n@@ -230,7 +230,6 @@ static void process_alternates_response(void *callback_data)\n \t\t\tint okay = 0;\n \t\t\tint serverlen = 0;\n \t\t\tstruct alt_base *newalt;\n-\t\t\tchar *target = NULL;\n \t\t\tif (data[i] == '/') {\n \t\t\t\t/*\n \t\t\t\t * This counts\n@@ -287,17 +286,15 @@ static void process_alternates_response(void *callback_data)\n \t\t\t}\n \t\t\t/* skip \"objects\\n\" at end */\n \t\t\tif (okay) {\n-\t\t\t\ttarget = xmalloc(serverlen + posn - i - 6);\n-\t\t\t\tmemcpy(target, base, serverlen);\n-\t\t\t\tmemcpy(target + serverlen, data + i,\n-\t\t\t\t       posn - i - 7);\n-\t\t\t\ttarget[serverlen + posn - i - 7] = 0;\n+\t\t\t\tstruct strbuf target = STRBUF_INIT;\n+\t\t\t\tstrbuf_add(&target, base, serverlen);\n+\t\t\t\tstrbuf_add(&target, data + i, posn - i - 7);\n \t\t\t\tif (walker->get_verbosely)\n-\t\t\t\t\tfprintf(stderr,\n-\t\t\t\t\t\t\"Also look at %s\\n\", target);\n+\t\t\t\t\tfprintf(stderr, \"Also look at %s\\n\",\n+\t\t\t\t\t\ttarget.buf);\n \t\t\t\tnewalt = xmalloc(sizeof(*newalt));\n \t\t\t\tnewalt->next = NULL;\n-\t\t\t\tnewalt->base = target;\n+\t\t\t\tnewalt->base = strbuf_detach(&target, NULL);\n \t\t\t\tnewalt->got_indices = 0;\n \t\t\t\tnewalt->packs = NULL;\n \n-- \n2.1.0\n"}]}