commit - 4e35f3f5e6cd19658dea0cee4657bf3f209f1e64
commit + 5a6829a24229eb0dfb73fdb62bcc65ea6333ac1b
blob - 182c2bc8c30708ec979efaabbb3d81839f514df9
blob + 5eef14a20c2095f7d3e35d90b6f6c9df86504786
--- lib/fetch.c
+++ lib/fetch.c
if (packfile_size_cur <= ssizeof(pack_hdr) + SHA1_DIGEST_LENGTH)
packfile_size_cur = 0;
if (!done && refname && id) {
- err = got_pathlist_insert(NULL, refs, refname, id);
+ err = got_pathlist_insert(&pe, refs, refname, id);
if (err)
goto done;
+ if (pe == NULL)
+ free(id);
} else if (!done && server_progress) {
char *p;
/*
blob - 746c2864eb29a5a281a4c584b7a025275d80fff6
blob + 2b7c36baf89ab7470fda3802cbe1bf5fcea0195f
--- lib/send.c
+++ lib/send.c
const struct got_error *err;
struct got_reference *ref;
struct got_object_id *id = NULL;
+ struct got_pathlist_entry *new = NULL;
int obj_type;
err = got_ref_open(&ref, repo, refname, 0);
goto done;
}
- err = got_pathlist_insert(NULL, refs, target_refname, id);
+ err = got_pathlist_insert(&new, refs, target_refname, id);
done:
if (ref)
got_ref_close(ref);
- if (err)
+ if (err || new == NULL /* duplicate */)
free(id);
return err;
}