Hi,
  it seems to be gcc bug.  For inexplicable reason compiler optimized
'if (cp && *cp)' to just 'if (*cp)' :-(

Changing 'char *cp' to 'char * volatile cp' at line 468 in
support/export/client.c is enough to explain to gcc that it has no
idea what it is doing, and fixes the crash.

I think that after code does 'strncpy(new, old, cp-old)' or
'new[cp-old] = 0' or 'if (cp != old && *cp)' compiler believes 'cp'
cannot be NULL, forgetting that both 'cp' and 'old' could have been
NULL, making these expressions valid for NULL cp.

Petr

Attachment: nfsworkaround.patch
Description: Binary data

Reply via email to