From 1f3e4b39fdebacf620c0351bdd12afafa648ee86 Mon Sep 17 00:00:00 2001 From: Maksim Yevmenkin Date: Fri, 16 Nov 2007 15:13:12 +0000 Subject: Fix bug in handling SDP continuation state. Reported by: Eric Millbrandt emillbrandt at coldhaus dot com MFC after: 3 days --- lib/libsdp/search.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/lib/libsdp/search.c b/lib/libsdp/search.c index 54ac3a40f6ba..868fbe562ffe 100644 --- a/lib/libsdp/search.c +++ b/lib/libsdp/search.c @@ -204,15 +204,18 @@ sdp_search(void *xss, return (-1); } + rsp += xpdu.len; + ss->tid ++; + /* Save continuation state (if any) */ - ss->cslen = rsp[xpdu.len]; + ss->cslen = rsp[0]; if (ss->cslen > 0) { if (ss->cslen > sizeof(ss->cs)) { ss->error = ENOBUFS; return (-1); } - memcpy(ss->cs, rsp + xpdu.len + 1, ss->cslen); + memcpy(ss->cs, rsp + 1, ss->cslen); /* * Ensure that we always have ss->imtu bytes @@ -236,9 +239,6 @@ sdp_search(void *xss, rsp = ss->rsp + offset; } } - - rsp += xpdu.len; - ss->tid ++; } while (ss->cslen > 0); /* -- cgit v1.2.3