
Tamar Christina pushed to branch wip/bump-win32-tarballs at Glasgow Haskell Compiler / GHC Commits: d2c66a91 by Tamar Christina at 2025-06-29T11:00:06+01:00 rts: Fix offset by 1 error and check for both delimiters - - - - - 1 changed file: - rts/linker/LoadArchive.c Changes: ===================================== rts/linker/LoadArchive.c ===================================== @@ -250,11 +250,11 @@ lookupGNUArchiveIndex(int gnuFileIndexSize, char **fileName_, // Check that the previous entry ends with the expected // end-of-string delimiter. #if defined(mingw32_HOST_OS) -#define STRING_TABLE_DELIM '\0' +#define IS_SYMBOL_DELIMITER(STR) (STR =='\n' || STR == '\0') #else -#define STRING_TABLE_DELIM '\n' +#define IS_SYMBOL_DELIMITER(STR) (STR =='\n') #endif - if (n != 0 && gnuFileIndex[n - 1] != STRING_TABLE_DELIM) { + if (n != 0 && !IS_SYMBOL_DELIMITER(gnuFileIndex[n - 1])) { errorBelch("loadArchive: GNU-variant filename offset " "%d invalid (range [0..%d]) while reading " "filename from `%" PATH_FMT "'", @@ -263,10 +263,10 @@ lookupGNUArchiveIndex(int gnuFileIndexSize, char **fileName_, } int i; - for (i = n; gnuFileIndex[i] != '\n'; i++) + for (i = n; !IS_SYMBOL_DELIMITER(gnuFileIndex[i]); i++) ; - size_t FileNameSize = i - n - 1; + size_t FileNameSize = i - n; if (FileNameSize >= *fileNameSize) { /* Double it to avoid potentially continually increasing it by 1 */ View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/commit/d2c66a91150b49e3969c25af2a9868f7... -- View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/commit/d2c66a91150b49e3969c25af2a9868f7... You're receiving this email because of your account on gitlab.haskell.org.