mirror of
https://github.com/owntone/owntone-server.git
synced 2025-04-24 12:30:38 -04:00
dereferencing freed memory
This commit is contained in:
parent
e600a30528
commit
491e7f8b57
@ -966,17 +966,15 @@ ENUMHANDLE db_enum_begin(void) {
|
|||||||
if(!pkey)
|
if(!pkey)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
static datum key;
|
|
||||||
|
|
||||||
db_writelock();
|
db_writelock();
|
||||||
|
|
||||||
*pkey=gdbm_firstkey(db_songs);
|
*pkey=gdbm_firstkey(db_songs);
|
||||||
|
|
||||||
return (ENUMHANDLE)pkey;
|
return (ENUMHANDLE)pkey;
|
||||||
}
|
}
|
||||||
|
|
||||||
MP3FILE *db_enum(ENUMHANDLE *current) {
|
MP3FILE *db_enum(ENUMHANDLE *current) {
|
||||||
datum *pkey = *current;
|
datum *pkey = *current;
|
||||||
|
datum next;
|
||||||
datum data;
|
datum data;
|
||||||
static MP3FILE mp3;
|
static MP3FILE mp3;
|
||||||
|
|
||||||
@ -988,8 +986,11 @@ MP3FILE *db_enum(ENUMHANDLE *current) {
|
|||||||
if(db_unpackrecord(&data,&mp3))
|
if(db_unpackrecord(&data,&mp3))
|
||||||
DPRINTF(ERR_FATAL,"Cannot unpack item... corrupt database?\n");
|
DPRINTF(ERR_FATAL,"Cannot unpack item... corrupt database?\n");
|
||||||
|
|
||||||
|
free(data.dptr);
|
||||||
|
|
||||||
|
next = gdbm_nextkey(db_songs,*pkey);
|
||||||
free(pkey->dptr);
|
free(pkey->dptr);
|
||||||
*pkey = gdbm_nextkey(db_songs,*pkey);
|
*pkey=next;
|
||||||
|
|
||||||
return &mp3;
|
return &mp3;
|
||||||
}
|
}
|
||||||
@ -998,7 +999,14 @@ MP3FILE *db_enum(ENUMHANDLE *current) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
int db_enum_end(ENUMHANDLE handle) {
|
int db_enum_end(ENUMHANDLE handle) {
|
||||||
|
datum *pkey = handle;
|
||||||
|
|
||||||
|
if(pkey->dptr)
|
||||||
|
free(pkey->dptr);
|
||||||
|
|
||||||
db_unlock();
|
db_unlock();
|
||||||
|
free(pkey);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user