diff options
-rw-r--r-- | core/mplayer.c | 4 | ||||
-rw-r--r-- | stream/stream.h | 2 | ||||
-rw-r--r-- | stream/stream_bluray.c | 4 | ||||
-rw-r--r-- | stream/stream_dvd.c | 2 |
4 files changed, 7 insertions, 5 deletions
diff --git a/core/mplayer.c b/core/mplayer.c index cf475b2e01..ebe52b1b76 100644 --- a/core/mplayer.c +++ b/core/mplayer.c @@ -910,7 +910,7 @@ static struct track *add_stream_track(struct MPContext *mpctx, track->demuxer_id) }; stream_control(track->demuxer->stream, STREAM_CTRL_GET_LANG, &req); - track->lang = talloc_steal(track, req.name); + track->lang = talloc_strdup(track, req.name); } return track; @@ -941,7 +941,7 @@ static void add_dvd_tracks(struct MPContext *mpctx) struct stream_lang_req req = {.type = STREAM_SUB, .id = n}; stream_control(stream, STREAM_CTRL_GET_LANG, &req); - track->lang = talloc_steal(track, req.name); + track->lang = talloc_strdup(track, req.name); } } #endif diff --git a/stream/stream.h b/stream/stream.h index 9bb6da749b..87cb6c64db 100644 --- a/stream/stream.h +++ b/stream/stream.h @@ -100,7 +100,7 @@ struct stream_lang_req { int type; // STREAM_AUDIO, STREAM_SUB int id; - char *name; + char name[50]; }; typedef enum { diff --git a/stream/stream_bluray.c b/stream/stream_bluray.c index 5f380458c7..8ee69aaa80 100644 --- a/stream/stream_bluray.c +++ b/stream/stream_bluray.c @@ -30,6 +30,8 @@ */ #include <libbluray/bluray.h> +#include <string.h> +#include <assert.h> #include "config.h" #include "libavutil/common.h" @@ -215,7 +217,7 @@ static int bluray_stream_control(stream_t *s, int cmd, void *arg) } while (count-- > 0) { if (si->pid == req->id) { - req->name = talloc_strndup(NULL, si->lang, 4); + snprintf(req->name, sizeof(req->name), "%.4s", si->lang); bd_free_title_info(ti); return STREAM_OK; } diff --git a/stream/stream_dvd.c b/stream/stream_dvd.c index 4554b2c2cc..b30092134c 100644 --- a/stream/stream_dvd.c +++ b/stream/stream_dvd.c @@ -707,7 +707,7 @@ static int control(stream_t *stream,int cmd,void* arg) } if (!lang) break; - req->name = talloc_strdup(NULL, (char[]) {lang >> 8, lang, 0}); + snprintf(req->name, sizeof(req->name), "%c%c", lang >> 8, lang); return STREAM_OK; } } |