diff options
| author | Junio C Hamano <gitster@pobox.com> | 2020-04-22 13:42:44 -0700 |
|---|---|---|
| committer | Junio C Hamano <gitster@pobox.com> | 2020-04-22 13:42:44 -0700 |
| commit | 5ee5788af680ebc20b138f40fb0bfd79494ba95c (patch) | |
| tree | 562784f7cd50ff5a3d11a0d44372c71724a59976 /ls-refs.c | |
| parent | dfe48154b16e35ea01795aa94c7e8686f084e2c3 (diff) | |
| parent | cacae4329fa4779127f4944e7807512e7b9e8cac (diff) | |
| download | git-5ee5788af680ebc20b138f40fb0bfd79494ba95c.tar.gz | |
Merge branch 'jk/harden-protocol-v2-delim-handling'
The server-end of the v2 protocol to serve "git clone" and "git
fetch" was not prepared to see a delim packets at unexpected
places, which led to a crash.
* jk/harden-protocol-v2-delim-handling:
test-lib-functions: simplify packetize() stdin code
upload-pack: handle unexpected delim packets
test-lib-functions: make packetize() more efficient
Diffstat (limited to 'ls-refs.c')
| -rw-r--r-- | ls-refs.c | 5 |
1 files changed, 4 insertions, 1 deletions
@@ -93,7 +93,7 @@ int ls_refs(struct repository *r, struct argv_array *keys, git_config(ls_refs_config, NULL); - while (packet_reader_read(request) != PACKET_READ_FLUSH) { + while (packet_reader_read(request) == PACKET_READ_NORMAL) { const char *arg = request->line; const char *out; @@ -105,6 +105,9 @@ int ls_refs(struct repository *r, struct argv_array *keys, argv_array_push(&data.prefixes, out); } + if (request->status != PACKET_READ_FLUSH) + die(_("expected flush after ls-refs arguments")); + head_ref_namespaced(send_ref, &data); for_each_namespaced_ref(send_ref, &data); packet_flush(1); |
