Le 28/04/2014 16:05, Patrick Baggett a écrit :
strcmp() may well be implemented by word comparisons. But then it
is the duty of the implementation to properly handle the ends of
the strings even if those are not word aligned.
Indeed, the correct fix is using strcmp. Meanwhile, the package is
broken.
Wow, that's pretty bad. How did that slip? Also, are you building
64-bit or 32-bit code, and what CPU architecture (perhaps some per-CPU
implementation is buggy but not others?) This information will help
when tracking down the issue.
I think this happens in this particular case comparing \000x and \0000.
I had a look at my test_case, the build is 32bit and the called function
is dynamic in the glibc.
I tried a 64bit build, it's the same problem.
I tried various optimization flags and using __builtin_strcmp withtout
any change.
Could you check this little program test against one of your machine ?
Just to be sure ?
Seb