X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=libs%2Floader%2Fldt_keeper.c;h=4bf5d04bd26ae2f0135df397c2545d6d4e5db8ed;hb=6ee2e79bee89bd7d3657201c803c9a618b0b2af9;hp=2cfae68b0faf686b9e6d1a36cbd1c1b591961663;hpb=066e58dd3454554fed6dad53fd2513736087720d;p=vlc diff --git a/libs/loader/ldt_keeper.c b/libs/loader/ldt_keeper.c index 2cfae68b0f..4bf5d04bd2 100644 --- a/libs/loader/ldt_keeper.c +++ b/libs/loader/ldt_keeper.c @@ -217,6 +217,7 @@ ldt_fs_t* Setup_LDT_Keeper(void) ldt_fs->fd = open("/dev/zero", O_RDWR); if(ldt_fs->fd<0){ perror( "Cannot open /dev/zero for READ+WRITE. Check permissions! error: "); + free(ldt_fs); return NULL; } fs_seg= @@ -297,10 +298,9 @@ ldt_fs_t* Setup_LDT_Keeper(void) void Restore_LDT_Keeper(ldt_fs_t* ldt_fs) { - if (ldt_fs == NULL || ldt_fs->fs_seg == 0) + if (ldt_fs == NULL || ldt_fs->fs_seg == NULL) return; - if (ldt_fs->prev_struct) - free(ldt_fs->prev_struct); + free(ldt_fs->prev_struct); munmap((char*)ldt_fs->fs_seg, getpagesize()); ldt_fs->fs_seg = 0; close(ldt_fs->fd);