Skip to content

Commit

Permalink
Fixed potential buffer overflow in Linux CD code (thanks Ryan!)
Browse files Browse the repository at this point in the history
  • Loading branch information
slouken committed Aug 9, 2001
1 parent 591d020 commit e9a6115
Showing 1 changed file with 15 additions and 2 deletions.
17 changes: 15 additions & 2 deletions src/cdrom/linux/SDL_syscdrom.c
Expand Up @@ -181,10 +181,21 @@ static void CheckMounts(const char *mtab)

mntfp = setmntent(mtab, "r");
if ( mntfp != NULL ) {
char *tmp, mnt_type[32], mnt_dev[1024];
char *tmp;
char *mnt_type;
char *mnt_dev;

while ( (mntent=getmntent(mntfp)) != NULL ) {
/* Warning, possible buffer overflow.. */
mnt_type = malloc(strlen(mntent->mnt_type) + 1);
if (mnt_type == NULL)
continue; /* maybe you'll get lucky next time. */

mnt_dev = malloc(strlen(mntent->mnt_fsname) + 1);
if (mnt_dev == NULL) {
free(mnt_type);
continue;
}

strcpy(mnt_type, mntent->mnt_type);
strcpy(mnt_dev, mntent->mnt_fsname);

Expand Down Expand Up @@ -216,6 +227,8 @@ static void CheckMounts(const char *mtab)
AddDrive(mnt_dev, &stbuf);
}
}
free(mnt_dev);
free(mnt_type);
}
endmntent(mntfp);
}
Expand Down

0 comments on commit e9a6115

Please sign in to comment.