X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Ffiles.c;h=5cca0e3055b97595d87e418087e9dac35b3be83a;hb=ab8e032c1d2c7ec3df6b8491bdbd8f8e57c7dc70;hp=39c0321ac51ad81576d56661450db81803a48ed9;hpb=f5548497f854106cbd0aec58642649c94d91f6e3;p=rocksndiamonds.git diff --git a/src/files.c b/src/files.c index 39c0321a..5cca0e30 100644 --- a/src/files.c +++ b/src/files.c @@ -7765,16 +7765,21 @@ static int LoadTape_SCRN(File *file, int chunk_size, struct TapeInfo *tape) static int LoadTape_INFO(File *file, int chunk_size, struct TapeInfo *tape) { + char *level_identifier = NULL; int level_identifier_size; int i; level_identifier_size = getFile16BitBE(file); - tape->level_identifier = - checked_realloc(tape->level_identifier, level_identifier_size); + level_identifier = checked_malloc(level_identifier_size); for (i = 0; i < level_identifier_size; i++) - tape->level_identifier[i] = getFile8Bit(file); + level_identifier[i] = getFile8Bit(file); + + strncpy(tape->level_identifier, level_identifier, MAX_FILENAME_LEN); + tape->level_identifier[MAX_FILENAME_LEN] = '\0'; + + checked_free(level_identifier); tape->level_nr = getFile16BitBE(file);