Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 63619
b: refs/heads/master
c: d6f9fda
h: refs/heads/master
i:
  63617: ae93005
  63615: 5e0fa15
v: v3
  • Loading branch information
Sebastian Siewior authored and Vlad Yasevich committed Aug 1, 2007
1 parent 8594b96 commit d8df193
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 6 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: c86dabcf00f3ca167df59f3526a53b3da3ede2c8
refs/heads/master: d6f9fdaf643eca8fb49fffdd6269b78f4ef1ef86
16 changes: 11 additions & 5 deletions trunk/net/sctp/socket.c
Original file line number Diff line number Diff line change
Expand Up @@ -4350,7 +4350,7 @@ static int sctp_getsockopt_local_addrs(struct sock *sk, int len,
space_left, &bytes_copied);
if (cnt < 0) {
err = cnt;
goto error;
goto error_lock;
}
goto copy_getaddrs;
}
Expand All @@ -4364,7 +4364,7 @@ static int sctp_getsockopt_local_addrs(struct sock *sk, int len,
addrlen = sctp_get_af_specific(temp.sa.sa_family)->sockaddr_len;
if (space_left < addrlen) {
err = -ENOMEM; /*fixme: right error?*/
goto error;
goto error_lock;
}
memcpy(buf, &temp, addrlen);
buf += addrlen;
Expand All @@ -4378,15 +4378,21 @@ static int sctp_getsockopt_local_addrs(struct sock *sk, int len,

if (copy_to_user(to, addrs, bytes_copied)) {
err = -EFAULT;
goto error;
goto out;
}
if (put_user(cnt, &((struct sctp_getaddrs __user *)optval)->addr_num)) {
err = -EFAULT;
goto error;
goto out;
}
if (put_user(bytes_copied, optlen))
err = -EFAULT;
error:

goto out;

error_lock:
sctp_read_unlock(addr_lock);

out:
kfree(addrs);
return err;
}
Expand Down

0 comments on commit d8df193

Please sign in to comment.