diff --git a/ffserver.c b/ffserver.c
index 421773507791911d309648670a08a342b764175b..e3b53fb7ef5f6858fcc0859f76f8a207a69e7285 100644
--- a/ffserver.c
+++ b/ffserver.c
@@ -2880,7 +2880,7 @@ static int rtsp_parse_request(HTTPContext *c)
     if (*p == '\n')
         p++;
     while (*p != '\0') {
-        p1 = strchr(p, '\n');
+        p1 = memchr(p, '\n', (char *)c->buffer_ptr - p);
         if (!p1)
             break;
         p2 = p1;