summaryrefslogtreecommitdiffstats
path: root/usr.sbin
diff options
context:
space:
mode:
authorbrian <brian@FreeBSD.org>2004-04-17 00:29:17 +0000
committerbrian <brian@FreeBSD.org>2004-04-17 00:29:17 +0000
commit8f1eb09821df19d6b6a08ff5a024611d44be3d11 (patch)
tree0216a719a2ad1f4b0343aedb5527a108b5b3ee5b /usr.sbin
parenta7a31583b738b898e6e5fc0e113160519768d0b8 (diff)
downloadFreeBSD-src-8f1eb09821df19d6b6a08ff5a024611d44be3d11.zip
FreeBSD-src-8f1eb09821df19d6b6a08ff5a024611d44be3d11.tar.gz
Add a missing memcpy (*blush*!)
Suggested by: James P Scully <scully@CS.Arizona.EDU>, Perianayagam Somasundaram <somu@CS.Arizona.EDU> MFC after: 10 days
Diffstat (limited to 'usr.sbin')
-rw-r--r--usr.sbin/ppp/mbuf.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/usr.sbin/ppp/mbuf.c b/usr.sbin/ppp/mbuf.c
index 5bf8199..0edf1b9 100644
--- a/usr.sbin/ppp/mbuf.c
+++ b/usr.sbin/ppp/mbuf.c
@@ -248,11 +248,13 @@ m_prepend(struct mbuf *bp, const void *ptr, size_t len, size_t extra)
if (bp->m_offset >= len) {
bp->m_offset -= len;
bp->m_len += len;
- memcpy(MBUF_CTOP(bp), ptr, len);
+ if (ptr)
+ memcpy(MBUF_CTOP(bp), ptr, len);
return bp;
}
len -= bp->m_offset;
- memcpy(bp + 1, (const char *)ptr + len, bp->m_offset);
+ if (ptr)
+ memcpy(bp + 1, (const char *)ptr + len, bp->m_offset);
bp->m_len += bp->m_offset;
bp->m_offset = 0;
}
@@ -425,9 +427,11 @@ m_append(struct mbuf *bp, const void *v, size_t sz)
if (m) {
while (m->m_next)
m = m->m_next;
- if (m->m_size - m->m_len > sz)
+ if (m->m_size - m->m_len >= sz) {
+ if (v)
+ memcpy((char *)(m + 1) + m->m_len, v, sz);
m->m_len += sz;
- else
+ } else
m->m_next = m_prepend(NULL, v, sz, 0);
} else
bp = m_prepend(NULL, v, sz, 0);
OpenPOWER on IntegriCloud