diff options
-rw-r--r-- | stream/stream_cddb.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/stream/stream_cddb.c b/stream/stream_cddb.c index 70c21eb43e..be6ac9269b 100644 --- a/stream/stream_cddb.c +++ b/stream/stream_cddb.c @@ -338,10 +338,10 @@ cddb_read_cache(cddb_data_t *cddb_data) { perror("fstat"); file_size = 4096; } else { - file_size = stats.st_size; + file_size = stats.st_size < UINT_MAX ? stats.st_size : UINT_MAX - 1; } - cddb_data->xmcd_file = malloc(file_size); + cddb_data->xmcd_file = malloc(file_size+1); if( cddb_data->xmcd_file==NULL ) { mp_msg(MSGT_DEMUX, MSGL_ERR, MSGTR_MemAllocFailed); close(file_fd); @@ -353,6 +353,7 @@ cddb_read_cache(cddb_data_t *cddb_data) { close(file_fd); return -1; } + cddb_data->xmcd_file[cddb_data->xmcd_file_size] = 0; close(file_fd); |