Mercurial > libavformat.hg
changeset 706:fc254f396f15 libavformat
buffer overflow in sdp_probe() fix by (Gildas Bazin )gbazin altern org)
author | michael |
---|---|
date | Wed, 16 Mar 2005 19:06:34 +0000 |
parents | 594a9b0cacf5 |
children | cc612862d461 |
files | rtsp.c |
diffstat | 1 files changed, 6 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- a/rtsp.c Wed Mar 16 13:26:52 2005 +0000 +++ b/rtsp.c Wed Mar 16 19:06:34 2005 +0000 @@ -1174,17 +1174,16 @@ static int sdp_probe(AVProbeData *p1) { - const char *p; + const char *p = p1->buf, *p_end = p1->buf + p1->buf_size; /* we look for a line beginning "c=IN IP4" */ - p = p1->buf; - while (*p != '\0') { - if (strstart(p, "c=IN IP4", NULL)) + while (p < p_end && *p != '\0') { + if (p + sizeof("c=IN IP4") - 1 < p_end && strstart(p, "c=IN IP4", NULL)) return AVPROBE_SCORE_MAX / 2; - p = strchr(p, '\n'); - if (!p) + + while(p < p_end - 1 && *p != '\n') p++; + if (++p >= p_end) break; - p++; if (*p == '\r') p++; }