Re: git error in tag ...: unterminated header
From: Johannes Schindelin <hidden>
Date: 2016-06-15 23:05:32
Hi Junio & Wolfgang, On 2015-06-25 22:24, Junio C Hamano wrote:
Wolfgang Denk [off-list ref] writes:quoted
In message [ref] you wrote:quoted
quoted
Question is: how can we fix that?It could be that 4d0d8975 is buggy and barking at a non breakage.
Well, I would like to believe that this commit made our code *safer* by making sure that we would never overrun the buffer. Remember: under certain circumstances, the buffer passed to the fsck machinery is *not* terminated by a NUL. The code I introduced simply verifies that there is an empty line because the fsck code stops there and does not look further. If the buffer does *not* contain an empty line, the fsck code runs the danger of looking beyond the allocated memory because it uses functions that assume NUL-terminated strings, while the buffer passed to the fsck code is a counted string. The quick & dirty work-around would be to detect when the buffer does not contain an empty line and to make a NUL-terminated copy in that case. A better solution was outlined by Peff back when I submitted those patches: change all the code paths that read objects and make sure that all of them are terminated by a NUL. AFAIR some code paths did that already, but not all of them. Ciao, Dscho