From: Dana How Date: Mon, 09 Apr 2007 18:51:55 GMT Subject: Re: [PATCH 5/8] get-repack --max-pack-size: write_object() takes 'limit' arg Message-ID: <56b7f5510704091151l70cc74b1la82e0c5a67d6885f@mail.gmail.com> In-Reply-To: On 4/8/07, Nicolas Pitre wrote: > > @@ -448,6 +480,12 @@ static off_t write_object(struct sha1file *f, > > header[pos] = ofs & 127; > > while (ofs >>= 7) > > header[--pos] = 128 | (--ofs & 127); > > + if ( limit && hdrlen + sizeof(header) - pos + datalen + 20 >= limit ) { > > + free(out); > > + free(buf); > > + return 0; > > + } > > + sha1write(f, header, hdrlen); > > sha1write(f, header + pos, sizeof(header) - pos); > > The above looks rather buggy to me. OK, can you be more specific? So far from my re-inspection I don't see any error in the snippet above. Two lines before it, however, we have the line off_t ofs = entry->offset - entry->delta->offset; and this only works if entry->offset is set in write_one() *before* calling write_object(). I will make that change. Thanks! -- Dana L. How danahow@gmail.com +1 650 804 5991 cell