Page MenuHomeFreeBSD

D8152.id21188.diff
No OneTemporary

D8152.id21188.diff

Index: sys/kern/uipc_syscalls.c
===================================================================
--- sys/kern/uipc_syscalls.c
+++ sys/kern/uipc_syscalls.c
@@ -762,8 +762,11 @@
cap_rights_set(&rights, CAP_CONNECT);
}
error = getsock_cap(td, s, &rights, &fp, NULL, NULL);
- if (error != 0)
+ if (error != 0) {
+ if (control != NULL)
+ m_freem(control);
return (error);
+ }
so = (struct socket *)fp->f_data;
#ifdef KTRACE
@@ -774,12 +777,18 @@
if (mp->msg_name != NULL) {
error = mac_socket_check_connect(td->td_ucred, so,
mp->msg_name);
- if (error != 0)
+ if (error != 0) {
+ if (control != NULL)
+ m_freem(control);
goto bad;
+ }
}
error = mac_socket_check_send(td->td_ucred, so);
- if (error != 0)
+ if (error != 0) {
+ if (control != NULL)
+ m_freem(control);
goto bad;
+ }
#endif
auio.uio_iov = mp->msg_iov;
@@ -793,6 +802,8 @@
for (i = 0; i < mp->msg_iovlen; i++, iov++) {
if ((auio.uio_resid += iov->iov_len) < 0) {
error = EINVAL;
+ if (control != NULL)
+ m_freem(control);
goto bad;
}
}

File Metadata

Mime Type
text/plain
Expires
Tue, May 19, 6:21 AM (14 h, 35 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
33296669
Default Alt Text
D8152.id21188.diff (1 KB)

Event Timeline