Crash when comparing a single file in WinMerge

Issue #159 resolved
Stefan Hett
created an issue

Trying to compare the file contained in the archive with a copy of itself crashes WinMerge 2011 008.226 (64-bit).

The crash sounds similiar to issue 103 (https://bitbucket.org/jtuc/winmerge2011/issues/103). I decided to create a new bugreport however since I can't tell from just the crash callstack (without symbol files) whether both crashes are the same however.

Categroizing as critical since it crashes WinMerge and prevents a folder comparison to work which depending on the depth of the folder tree might be quite hard to trace down to the offending file.

Comments (6)

  1. jtuc repo owner

    Changeset e38d9e886313 should fix the issue. Thanks for reporting.

    As it appears, the crash is a consequence of substituting lstrcpynA() with own code.
    Before this change, lstrcpynA() was hiding the bug by catching the exception internally.

  2. Stefan Hett

    Thx for the quick fix. FWIW not sure if you are aware of memcpy_s() but from a quick look at it, having used memcpy_s() there would have likely helped you spotting the off-by-one issue there, no?

    Do you have any ETA on the next release? It's not utterly vital for me to get a version with this issue fixed - just wondering.

  3. jtuc repo owner

    I'm kind of ignorant towards the _s functions. Annex K is a failed standard.
    http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1967.htm advocates for deprecating/removing it.

    As an anecdotal evidence, Microsoft have broken their certificate applet on Windows CE 8.0 by converting everything to _s functions. It was instantly crashing when calling up the dialog that shows the certificate details.

    Next release will probably happen in a few days.

  4. Log in to comment