G12 log. Crashes unless path len <= 59 and filename len <= 98
Thanks. Looks like R45 is similar to R47.
I noticed an oddity in this log, that directory listing seems to fail in some cases where open/write/close/stat all work. This happens with both the canon firmware readdir and the custom one:
31 char filename in root is OK
TEST START
check: dir=A pfx=T08 ext=.TXT len=31
long: A/T08AAAAAAAAAAAAAAAAAAAAAAAA.TXT
short: A/T08AAA~1.TXT
PASS open A/T08AAAAAAAAAAAAAAAAAAAAAAAA.TXT
PASS stat A/T08AAAAAAAAAAAAAAAAAAAAAAAA.TXT
PASS stat A/T08AAA~1.TXT
PASS idir CHDK_LFN A/ found long
PASS idir CANON_FW A/ found long
PASS read A/T08AAAAAAAAAAAAAAAAAAAAAAAA.TXT
PASS read A/T08AAA~1.TXT
PASS os.remove long
PASS remove long
TEST PASSED
32 char is not:
TEST START
check: dir=A pfx=T09 ext=.TXT len=32
long: A/T09AAAAAAAAAAAAAAAAAAAAAAAAA.TXT
short: A/T09AAA~1.TXT
PASS open A/T09AAAAAAAAAAAAAAAAAAAAAAAAA.TXT
PASS stat A/T09AAAAAAAAAAAAAAAAAAAAAAAAA.TXT
PASS stat A/T09AAA~1.TXT
FAIL idir CHDK_LFN A/ not found
FAIL idir CANON_FW A/ not found
PASS read A/T09AAAAAAAAAAAAAAAAAAAAAAAAA.TXT
PASS read A/T09AAA~1.TXT
PASS os.remove long
PASS remove long
TEST FAILED failures:2 errors:0
On the other hand, 32 works in a subdirectory

TEST START
check: dir=A/LFN_TEST pfx=T09 ext=.TXT len=32
long: A/LFN_TEST/T09AAAAAAAAAAAAAAAAAAAAAAAAA.TXT
short: A/LFN_TEST/T09AAA~1.TXT
PASS open A/LFN_TEST/T09AAAAAAAAAAAAAAAAAAAAAAAAA.TXT
PASS stat A/LFN_TEST/T09AAAAAAAAAAAAAAAAAAAAAAAAA.TXT
PASS stat A/LFN_TEST/T09AAA~1.TXT
PASS idir CHDK_LFN A/LFN_TEST found long
PASS idir CANON_FW A/LFN_TEST found short
PASS read A/LFN_TEST/T09AAAAAAAAAAAAAAAAAAAAAAAAA.TXT
PASS read A/LFN_TEST/T09AAA~1.TXT
PASS os.remove long
PASS remove long
TEST PASSED
The 'idir' tests list the directory contents and look for both the long and short versions of the name it just created, using both the CHDK lfn code and the stock firmware code. Since stat and the following read work, we know the file was created.
msl's r47 log does not show this.