Mercurial > hg > freeDiameter
comparison libfdproto/messages.c @ 720:2c7c423eaba9
Have AVP values 0-terminated for safety (one should not rely on this and use the size)
author | Sebastien Decugis <sdecugis@nict.go.jp> |
---|---|
date | Mon, 21 Feb 2011 18:30:20 +0900 |
parents | e60376cb15e8 |
children | e21d79595045 |
comparison
equal
deleted
inserted
replaced
719:dc71992e3378 | 720:2c7c423eaba9 |
---|---|
1770 } | 1770 } |
1771 return EBADMSG; | 1771 return EBADMSG; |
1772 } ); | 1772 } ); |
1773 avp->avp_storage.os.len = avp->avp_public.avp_len - GETAVPHDRSZ( avp->avp_public.avp_flags ); | 1773 avp->avp_storage.os.len = avp->avp_public.avp_len - GETAVPHDRSZ( avp->avp_public.avp_flags ); |
1774 if (avp->avp_storage.os.len) { | 1774 if (avp->avp_storage.os.len) { |
1775 CHECK_MALLOC( avp->avp_storage.os.data = malloc(avp->avp_storage.os.len) ); | 1775 CHECK_MALLOC( avp->avp_storage.os.data = os0dup(avp->avp_source, avp->avp_storage.os.len) ); |
1776 avp->avp_mustfreeos = 1; | 1776 avp->avp_mustfreeos = 1; |
1777 memcpy(avp->avp_storage.os.data, avp->avp_source, avp->avp_storage.os.len); | |
1778 } else { | 1777 } else { |
1779 avp->avp_storage.os.data = NULL; | 1778 avp->avp_storage.os.data = NULL; |
1780 } | 1779 } |
1781 break; | 1780 break; |
1782 | 1781 |