From 42e70868ab24b16189924a26efd5bfdc0b960e8a Mon Sep 17 00:00:00 2001 From: wm4 Date: Sun, 23 Feb 2014 18:07:13 +0100 Subject: dvd: check for empty DVD volume ID The only DVD sample I have just returns an empty string for this. Let command.c use the filename if the ID is empty. --- stream/stream_dvd.c | 6 ++++-- stream/stream_dvdnav.c | 4 +++- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/stream/stream_dvd.c b/stream/stream_dvd.c index 7e3c9c1cc3..3dc7e76cc3 100644 --- a/stream/stream_dvd.c +++ b/stream/stream_dvd.c @@ -730,8 +730,10 @@ static int control(stream_t *stream,int cmd,void* arg) case STREAM_CTRL_GET_DVD_VOLUME_ID: { char buffer[128]; - if (DVDUDFVolumeInfo(d->dvd, buffer, sizeof(buffer), NULL, 0) < 0 - && DVDISOVolumeInfo(d->dvd, buffer, sizeof(buffer), NULL, 0) < 0) + if (DVDUDFVolumeInfo(d->dvd, buffer, sizeof(buffer), NULL, 0) < 0 && + DVDISOVolumeInfo(d->dvd, buffer, sizeof(buffer), NULL, 0) < 0) + return STREAM_ERROR; + if (!buffer[0]) return STREAM_ERROR; *(char**)arg = talloc_strdup(NULL, buffer); return STREAM_OK; diff --git a/stream/stream_dvdnav.c b/stream/stream_dvdnav.c index 537047fe04..887b112d70 100644 --- a/stream/stream_dvdnav.c +++ b/stream/stream_dvdnav.c @@ -604,7 +604,9 @@ static int control(stream_t *stream, int cmd, void *arg) } case STREAM_CTRL_GET_DVD_VOLUME_ID: { const char *volume = NULL; - if (dvdnav_get_title_string(dvdnav, &volume) != DVDNAV_STATUS_OK || !volume) + if (dvdnav_get_title_string(dvdnav, &volume) != DVDNAV_STATUS_OK) + return STREAM_ERROR; + if (!volume || !volume[0]) return STREAM_ERROR; *(char**)arg = talloc_strdup(NULL, volume); return STREAM_OK; -- cgit v1.2.3