commit - dd088d9503d8e7cebbb30c535d8e4d11556c8d30
commit + e99d9267c8cc287a60f768d4282c01b9f5f6c975
blob - e84621dc25c55193b9782419f2eae52217f447c0
blob + dec248671df1f10f622bd433e33a46fc2d10f627
--- lib/gitproto.c
+++ lib/gitproto.c
const struct got_error *err = NULL;
char *tokens[3];
+ *id_str = NULL;
+ *refname = NULL;
+ /* don't reset *server_capabilities */
+
err = tokenize_refline(tokens, line, len, nitems(tokens));
if (err)
return err;
if (tokens[1])
*refname = tokens[1];
if (tokens[2]) {
- char *p;
- *server_capabilities = tokens[2];
- p = strrchr(*server_capabilities, '\n');
- if (p)
- *p = '\0';
+ if (*server_capabilities == NULL) {
+ char *p;
+ *server_capabilities = tokens[2];
+ p = strrchr(*server_capabilities, '\n');
+ if (p)
+ *p = '\0';
+ } else
+ free(tokens[2]);
}
return NULL;
blob - 171700f1fa26666e69adceb379ea1e594e5513d7
blob + b85f024e4b7e5925391dbd4ff5c8959ddb3234bc
--- libexec/got-fetch-pack/got-fetch-pack.c
+++ libexec/got-fetch-pack/got-fetch-pack.c
err = fetch_error(&buf[4], n - 4);
goto done;
}
+ free(id_str);
+ free(refname);
err = got_gitproto_parse_refline(&id_str, &refname,
&server_capabilities, buf, n);
if (err)
blob - eb8f383cfa96ab51e90ae06602d44b10e2336430
blob + bec42fbe983ba0d87334fee8b88459e849fbc337
--- libexec/got-send-pack/got-send-pack.c
+++ libexec/got-send-pack/got-send-pack.c
err = send_error(&buf[4], n - 4);
goto done;
}
+ free(id_str);
+ free(refname);
err = got_gitproto_parse_refline(&id_str, &refname,
&server_capabilities, buf, n);
if (err)