Skip to contentSkip to conversation

http-walker: simplify process_alternates_response() using strbuf

PATCH New René Scharfe 1 participant 1 message Jun 15, 2016

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 http-walker: simplify process_alternates_response() using strbuf

Use strbuf to build the new base, which takes care of allocations and the terminating NUL character automatically.

---
 http-walker.c | 15 ++++++---------
 1 file changed, 6 insertions(+), 9 deletions(-)
http-walker.c +6 -9
index dbddfaa..88da546 100644
@@ -230,7 +230,6 @@ static void process_alternates_response(void *callback_data)
 			int okay = 0;
 			int serverlen = 0;
 			struct alt_base *newalt;
-			char *target = NULL;
 			if (data[i] == '/') {
 				/*
 				 * This counts
@@ -287,17 +286,15 @@ static void process_alternates_response(void *callback_data)
 			}
 			/* skip "objects\n" at end */
 			if (okay) {
-				target = xmalloc(serverlen + posn - i - 6);
-				memcpy(target, base, serverlen);
-				memcpy(target + serverlen, data + i,
-				       posn - i - 7);
-				target[serverlen + posn - i - 7] = 0;
+				struct strbuf target = STRBUF_INIT;
+				strbuf_add(&target, base, serverlen);
+				strbuf_add(&target, data + i, posn - i - 7);
 				if (walker->get_verbosely)
-					fprintf(stderr,
-						"Also look at %s\n", target);
+					fprintf(stderr, "Also look at %s\n",
+						target.buf);
 				newalt = xmalloc(sizeof(*newalt));
 				newalt->next = NULL;
-				newalt->base = target;
+				newalt->base = strbuf_detach(&target, NULL);
 				newalt->got_indices = 0;
 				newalt->packs = NULL;
 
Signature · 1 line
2.1.0