summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2013-12-22 23:44:24 +0100
committerwm4 <wm4@nowhere>2013-12-22 23:44:24 +0100
commit90e4c8589140e5be411f1f169542e1f135ceeefa (patch)
tree03352a466109f7005431840c7b4c4ffa4b334c1f
parentaefb100e689e702c9d257a575d417e1db13c0221 (diff)
downloadmpv-90e4c8589140e5be411f1f169542e1f135ceeefa.tar.bz2
mpv-90e4c8589140e5be411f1f169542e1f135ceeefa.tar.xz
subreader: remove overlapping strcpy
Looks like this relied on undefined behavior.
-rw-r--r--demux/demux_subreader.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/demux/demux_subreader.c b/demux/demux_subreader.c
index fa029655fc..2969e1b3b8 100644
--- a/demux/demux_subreader.c
+++ b/demux/demux_subreader.c
@@ -127,7 +127,8 @@ static int eol(char p) {
static void trail_space(char *s) {
int i = 0;
while (isspace(s[i])) ++i;
- if (i) strcpy(s, s + i);
+ int copylen = strlen(s + i);
+ if (i) memmove(s, s + i, copylen);
i = strlen(s) - 1;
while (i > 0 && isspace(s[i])) s[i--] = '\0';
}