git.openpandora.org
/
pandora-kernel.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
net: sctp: fix memory leak in auth key management
[pandora-kernel.git]
/
net
/
sctp
/
auth.c
diff --git
a/net/sctp/auth.c
b/net/sctp/auth.c
index
865e68f
..
53d455c
100644
(file)
--- a/
net/sctp/auth.c
+++ b/
net/sctp/auth.c
@@
-71,7
+71,7
@@
void sctp_auth_key_put(struct sctp_auth_bytes *key)
return;
if (atomic_dec_and_test(&key->refcnt)) {
return;
if (atomic_dec_and_test(&key->refcnt)) {
- kfree(key);
+ k
z
free(key);
SCTP_DBG_OBJCNT_DEC(keys);
}
}
SCTP_DBG_OBJCNT_DEC(keys);
}
}
@@
-82,7
+82,7
@@
static struct sctp_auth_bytes *sctp_auth_create_key(__u32 key_len, gfp_t gfp)
struct sctp_auth_bytes *key;
/* Verify that we are not going to overflow INT_MAX */
struct sctp_auth_bytes *key;
/* Verify that we are not going to overflow INT_MAX */
- if (
(INT_MAX - key_len) < sizeof(struct sctp_auth_bytes
))
+ if (
key_len > (INT_MAX - sizeof(struct sctp_auth_bytes)
))
return NULL;
/* Allocate the shared key */
return NULL;
/* Allocate the shared key */
@@
-866,8
+866,6
@@
int sctp_auth_set_key(struct sctp_endpoint *ep,
list_add(&cur_key->key_list, sh_keys);
cur_key->key = key;
list_add(&cur_key->key_list, sh_keys);
cur_key->key = key;
- sctp_auth_key_hold(key);
-
return 0;
nomem:
if (!replace)
return 0;
nomem:
if (!replace)