summaryrefslogtreecommitdiff
path: root/pjlib
diff options
context:
space:
mode:
authorBenny Prijono <bennylp@teluu.com>2008-08-13 08:41:42 +0000
committerBenny Prijono <bennylp@teluu.com>2008-08-13 08:41:42 +0000
commit22190d1793eb60ca57343422c5554534d31074d1 (patch)
treec20d0e65b5acbe89b8add7bc1ea65af84a07ec85 /pjlib
parentd8d7e851457103079bc561bf815089d5b6c967e5 (diff)
pj_sockaddr_copy_addr() might raise assertion if destination address is not initialized
git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@2207 74dad513-b988-da41-8d7b-12977e46ad98
Diffstat (limited to 'pjlib')
-rw-r--r--pjlib/src/pj/sock_common.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/pjlib/src/pj/sock_common.c b/pjlib/src/pj/sock_common.c
index 901c9c84..c92ca518 100644
--- a/pjlib/src/pj/sock_common.c
+++ b/pjlib/src/pj/sock_common.c
@@ -384,9 +384,10 @@ PJ_DEF(unsigned) pj_sockaddr_get_len(const pj_sockaddr_t *addr)
PJ_DEF(void) pj_sockaddr_copy_addr( pj_sockaddr *dst,
const pj_sockaddr *src)
{
- pj_memcpy(pj_sockaddr_get_addr(dst),
- pj_sockaddr_get_addr(src),
- pj_sockaddr_get_addr_len(src));
+ /* Destination sockaddr might not be initialized */
+ const char *srcbuf = (char*)pj_sockaddr_get_addr(src);
+ char *dstbuf = ((char*)dst) + (srcbuf - (char*)src);
+ pj_memcpy(dstbuf, srcbuf, pj_sockaddr_get_addr_len(src));
}
/*