Tamar Christina pushed to branch wip/bump-win32-tarballs at Glasgow Haskell Compiler / GHC

Commits:

1 changed file:

Changes:

  • rts/linker/LoadArchive.c
    ... ... @@ -250,11 +250,11 @@ lookupGNUArchiveIndex(int gnuFileIndexSize, char **fileName_,
    250 250
             // Check that the previous entry ends with the expected
    
    251 251
             // end-of-string delimiter.
    
    252 252
     #if defined(mingw32_HOST_OS)
    
    253
    -#define STRING_TABLE_DELIM '\0'
    
    253
    +#define IS_SYMBOL_DELIMITER(STR) (STR =='\n' || STR == '\0')
    
    254 254
     #else
    
    255
    -#define STRING_TABLE_DELIM '\n'
    
    255
    +#define IS_SYMBOL_DELIMITER(STR) (STR =='\n')
    
    256 256
     #endif
    
    257
    -        if (n != 0 && gnuFileIndex[n - 1] != STRING_TABLE_DELIM) {
    
    257
    +        if (n != 0 && !IS_SYMBOL_DELIMITER(gnuFileIndex[n - 1])) {
    
    258 258
                 errorBelch("loadArchive: GNU-variant filename offset "
    
    259 259
                         "%d invalid (range [0..%d]) while reading "
    
    260 260
                         "filename from `%" PATH_FMT "'",
    
    ... ... @@ -263,10 +263,10 @@ lookupGNUArchiveIndex(int gnuFileIndexSize, char **fileName_,
    263 263
             }
    
    264 264
     
    
    265 265
             int i;
    
    266
    -        for (i = n; gnuFileIndex[i] != '\n'; i++)
    
    266
    +        for (i = n; !IS_SYMBOL_DELIMITER(gnuFileIndex[i]); i++)
    
    267 267
                 ;
    
    268 268
     
    
    269
    -        size_t FileNameSize = i - n - 1;
    
    269
    +        size_t FileNameSize = i - n;
    
    270 270
             if (FileNameSize >= *fileNameSize) {
    
    271 271
                 /* Double it to avoid potentially continually
    
    272 272
                  increasing it by 1 */