Merge branch 'js/maint-http-push'
* js/maint-http-push: http-push: avoid a needless goto http-push: do not get confused by submodules http-push: avoid invalid memory accesses
This commit is contained in:
commit
378b2607f0
27
http-push.c
27
http-push.c
@ -1634,12 +1634,19 @@ static struct object_list **process_tree(struct tree *tree,
|
|||||||
|
|
||||||
init_tree_desc(&desc, tree->buffer, tree->size);
|
init_tree_desc(&desc, tree->buffer, tree->size);
|
||||||
|
|
||||||
while (tree_entry(&desc, &entry)) {
|
while (tree_entry(&desc, &entry))
|
||||||
if (S_ISDIR(entry.mode))
|
switch (object_type(entry.mode)) {
|
||||||
|
case OBJ_TREE:
|
||||||
p = process_tree(lookup_tree(entry.sha1), p, &me, name);
|
p = process_tree(lookup_tree(entry.sha1), p, &me, name);
|
||||||
else
|
break;
|
||||||
|
case OBJ_BLOB:
|
||||||
p = process_blob(lookup_blob(entry.sha1), p, &me, name);
|
p = process_blob(lookup_blob(entry.sha1), p, &me, name);
|
||||||
}
|
break;
|
||||||
|
default:
|
||||||
|
/* Subproject commit - not in this repository */
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
free(tree->buffer);
|
free(tree->buffer);
|
||||||
tree->buffer = NULL;
|
tree->buffer = NULL;
|
||||||
return p;
|
return p;
|
||||||
@ -2399,15 +2406,17 @@ int main(int argc, char **argv)
|
|||||||
fill_active_slots();
|
fill_active_slots();
|
||||||
add_fill_function(NULL, fill_active_slot);
|
add_fill_function(NULL, fill_active_slot);
|
||||||
#endif
|
#endif
|
||||||
finish_all_active_slots();
|
do {
|
||||||
|
finish_all_active_slots();
|
||||||
|
#ifdef USE_CURL_MULTI
|
||||||
|
fill_active_slots();
|
||||||
|
#endif
|
||||||
|
} while (request_queue_head && !aborted);
|
||||||
|
|
||||||
/* Update the remote branch if all went well */
|
/* Update the remote branch if all went well */
|
||||||
if (aborted || !update_remote(ref->new_sha1, ref_lock)) {
|
if (aborted || !update_remote(ref->new_sha1, ref_lock))
|
||||||
rc = 1;
|
rc = 1;
|
||||||
goto unlock;
|
|
||||||
}
|
|
||||||
|
|
||||||
unlock:
|
|
||||||
if (!rc)
|
if (!rc)
|
||||||
fprintf(stderr, " done\n");
|
fprintf(stderr, " done\n");
|
||||||
unlock_remote(ref_lock);
|
unlock_remote(ref_lock);
|
||||||
|
Loading…
Reference in New Issue
Block a user