On 16.09.2013 01:59:09, Samuel Thibault wrote: > > Mmm, let me unloop it a bit: > > > if (*src++ != *target++) > > return FALSE; > > if (*src == '\0' && *target != '\0') > > return FALSE; > > if (*src++ != *target++) > > return FALSE; > > This shows that the case you added would be caught by the next > iteration of the while loop anyway, so your patch does not seem to > change the behavior? > > Samuel
Actually, it changes the behavior when the values at the memory locations beyond null-termination are equal. But this is probably a rare case, so I don't know if it justifies the modification. Btw, my patch is only partial. Neal's version is much better.