From ccefc2daa1bde6afdfd9a82bd495fde97e6b6b29 Mon Sep 17 00:00:00 2001 From: Thomas Schmitt Date: Mon, 26 Oct 2015 10:51:15 +0000 Subject: [PATCH] Avoiding to allocate empty buffer for texp packs. Indirectly Coverity CID 21818. --- cdrskin/cdrskin_timestamp.h | 2 +- libburn/cdtext.c | 10 +++++++++- libburn/libdax_msgs.h | 1 + 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/cdrskin/cdrskin_timestamp.h b/cdrskin/cdrskin_timestamp.h index 0e65ee2..1bc2b79 100644 --- a/cdrskin/cdrskin_timestamp.h +++ b/cdrskin/cdrskin_timestamp.h @@ -1 +1 @@ -#define Cdrskin_timestamP "2015.10.26.092929" +#define Cdrskin_timestamP "2015.10.26.105324" diff --git a/libburn/cdtext.c b/libburn/cdtext.c index 6c21ced..cb8fcf2 100755 --- a/libburn/cdtext.c +++ b/libburn/cdtext.c @@ -1085,6 +1085,7 @@ int burn_cdtext_from_packfile(char *path, unsigned char **text_packs, BURN_ALLOC_MEM(msg, char, 4096); + *text_packs = NULL; if (stat(path, &stbuf) == -1) { cannot_open:; sprintf(msg, "Cannot open CD-TEXT pack file '%.4000s'", path); @@ -1136,7 +1137,14 @@ cannot_read:; path); libdax_msgs_submit(libdax_messenger, -1, 0x0002018b, LIBDAX_MSGS_SEV_FAILURE, LIBDAX_MSGS_PRIO_HIGH, - burn_printify(msg), errno, 0); + burn_printify(msg), 0, 0); + ret = 0; goto ex; + } if (*num_packs <= 0) { + strcpy(msg, + "CD-Text pack file contains no complete text pack"); + libdax_msgs_submit(libdax_messenger, -1, 0x000201aa, + LIBDAX_MSGS_SEV_FAILURE, LIBDAX_MSGS_PRIO_HIGH, + burn_printify(msg), 0, 0); ret = 0; goto ex; } diff --git a/libburn/libdax_msgs.h b/libburn/libdax_msgs.h index b181c95..10c14f9 100644 --- a/libburn/libdax_msgs.h +++ b/libburn/libdax_msgs.h @@ -611,6 +611,7 @@ Range "scdbackup" : 0x00020000 to 0x0002ffff 0x000201a7 (FAILURE,HIGH) = SCSI command yielded host problem 0x000201a8 (FAILURE,HIGH) = SCSI command yielded driver problem 0x000201a9 (FAILURE,HIGH) = Implausible length from GET CONFIGURATION + 0x000201aa (FAILURE,HIGH) = No CD-TEXT packs in file libdax_audioxtr: