summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--core/mplayer.c4
-rw-r--r--stream/stream.h2
-rw-r--r--stream/stream_bluray.c4
-rw-r--r--stream/stream_dvd.c2
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;
}
}