diff options
author | jhb <jhb@FreeBSD.org> | 2006-07-19 18:28:52 +0000 |
---|---|---|
committer | jhb <jhb@FreeBSD.org> | 2006-07-19 18:28:52 +0000 |
commit | 947b8c9fbd64c828ef441411fff4f0ce542a99e2 (patch) | |
tree | f118230bba024980cf53524a675fa4cf555e0f6a /sys/compat | |
parent | de5f3a26d7a77dc461ed2c15145b9b2ba0386750 (diff) | |
download | FreeBSD-src-947b8c9fbd64c828ef441411fff4f0ce542a99e2.zip FreeBSD-src-947b8c9fbd64c828ef441411fff4f0ce542a99e2.tar.gz |
Don't free the sockaddr in kern_bind() and kern_connect() as not all
callers pass a sockaddr allocated via malloc() from M_SONAME anymore.
Instead, free it in the callers when necessary.
Diffstat (limited to 'sys/compat')
-rw-r--r-- | sys/compat/linux/linux_socket.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/sys/compat/linux/linux_socket.c b/sys/compat/linux/linux_socket.c index 8b164fa..3f089c0 100644 --- a/sys/compat/linux/linux_socket.c +++ b/sys/compat/linux/linux_socket.c @@ -609,7 +609,9 @@ linux_bind(struct thread *td, struct linux_bind_args *args) if (error) return (error); - return (kern_bind(td, linux_args.s, sa)); + error = kern_bind(td, linux_args.s, sa); + free(sa, M_SONAME); + return (error); } struct linux_connect_args { @@ -638,6 +640,7 @@ linux_connect(struct thread *td, struct linux_connect_args *args) return (error); error = kern_connect(td, linux_args.s, sa); + free(sa, M_SONAME); if (error != EISCONN) return (error); |