Karthik Nayak <karthik.188@xxxxxxxxx> writes: > +static int unpack_sha1_header_to_strbuf(git_zstream *stream, unsigned char *map, > + unsigned long mapsize, > + struct strbuf *header) > +{ > + unsigned char buffer[32], *cp; > + unsigned long bufsiz = sizeof(buffer); > + int status; > + > + status = unpack_sha1_header(stream, map, mapsize, buffer, bufsiz); I briefly wondered if this can return Z_BUF_ERROR, but it is OK because we do not call inflate with Z_FINISH in unpack_sha1_header() for obvious reasons ;-) > + if (status) { > + strbuf_add(header, buffer, stream->next_out - buffer); > + return status; > + } > + do { > + status = git_inflate(stream, 0); > + strbuf_add(header, buffer, stream->next_out - buffer); > + for (cp = buffer; cp < stream->next_out; cp++) > + if (!*cp) > + /* Found the NUL at the end of the header */ > + return 0; > + stream->next_out = buffer; > + stream->avail_out = bufsiz; > + } while (status != Z_STREAM_END); > + return -1; > +} OK. > @@ -1614,27 +1642,24 @@ static void *unpack_sha1_rest(git_zstream *stream, void *buffer, unsigned long s > * too permissive for what we want to check. So do an anal > * object header parse by hand. > */ > -int parse_sha1_header(const char *hdr, unsigned long *sizep) > +int parse_sha1_header_extended(const char *hdr, struct object_info *oi, > + unsigned int flags) > { > - char type[10]; > - int i; > + struct strbuf typename = STRBUF_INIT; > unsigned long size; > + int type; > > /* > * The type can be at most ten bytes (including the Is this still a valid comment? > * terminating '\0' that we add), and is followed by > * a space. > */ > - i = 0; > for (;;) { > char c = *hdr++; > if (c == ' ') > break; > - type[i++] = c; > - if (i >= sizeof(type)) > - return -1; > + strbuf_addch(&typename, c); > } > - type[i] = 0; > > /* > * The length must follow immediately, and be in canonical -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html