aboutsummaryrefslogtreecommitdiff
path: root/lib/libsdp/search.c
diff options
context:
space:
mode:
authorMaksim Yevmenkin <emax@FreeBSD.org>2007-11-16 15:13:12 +0000
committerMaksim Yevmenkin <emax@FreeBSD.org>2007-11-16 15:13:12 +0000
commit1f3e4b39fdebacf620c0351bdd12afafa648ee86 (patch)
treed633a06901e49ab684b62277c1a64c1d59541d2b /lib/libsdp/search.c
parent0e0d8d5a75f7c78f104163e245e57c58ee009ea2 (diff)
downloadsrc-1f3e4b39fdebacf620c0351bdd12afafa648ee86.tar.gz
src-1f3e4b39fdebacf620c0351bdd12afafa648ee86.zip
Fix bug in handling SDP continuation state.
Reported by: Eric Millbrandt emillbrandt at coldhaus dot com MFC after: 3 days
Notes
Notes: svn path=/head/; revision=173673
Diffstat (limited to 'lib/libsdp/search.c')
-rw-r--r--lib/libsdp/search.c10
1 files 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);
/*