git://git.onelab.eu
/
linux-2.6.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fedora core 6 1.2949 + vserver 2.2.0
[linux-2.6.git]
/
net
/
ipv4
/
ip_sockglue.c
diff --git
a/net/ipv4/ip_sockglue.c
b/net/ipv4/ip_sockglue.c
index
12e0bf1
..
57d4bae
100644
(file)
--- a/
net/ipv4/ip_sockglue.c
+++ b/
net/ipv4/ip_sockglue.c
@@
-17,7
+17,6
@@
* Mike McLagan : Routing by source
*/
* Mike McLagan : Routing by source
*/
-#include <linux/config.h>
#include <linux/module.h>
#include <linux/types.h>
#include <linux/mm.h>
#include <linux/module.h>
#include <linux/types.h>
#include <linux/mm.h>
@@
-113,14
+112,19
@@
static void ip_cmsg_recv_retopts(struct msghdr *msg, struct sk_buff *skb)
static void ip_cmsg_recv_security(struct msghdr *msg, struct sk_buff *skb)
{
char *secdata;
static void ip_cmsg_recv_security(struct msghdr *msg, struct sk_buff *skb)
{
char *secdata;
- u32 seclen;
+ u32 seclen
, secid
;
int err;
int err;
- err = security_socket_getpeersec_dgram(skb, &secdata, &seclen);
+ err = security_socket_getpeersec_dgram(NULL, skb, &secid);
+ if (err)
+ return;
+
+ err = security_secid_to_secctx(secid, &secdata, &seclen);
if (err)
return;
put_cmsg(msg, SOL_IP, SCM_SECURITY, seclen, secdata);
if (err)
return;
put_cmsg(msg, SOL_IP, SCM_SECURITY, seclen, secdata);
+ security_release_secctx(secdata, seclen);
}
}
@@
-250,7
+254,7
@@
int ip_ra_control(struct sock *sk, unsigned char on, void (*destructor)(struct s
}
void ip_icmp_error(struct sock *sk, struct sk_buff *skb, int err,
}
void ip_icmp_error(struct sock *sk, struct sk_buff *skb, int err,
-
u
16 port, u32 info, u8 *payload)
+
__be
16 port, u32 info, u8 *payload)
{
struct inet_sock *inet = inet_sk(sk);
struct sock_exterr_skb *serr;
{
struct inet_sock *inet = inet_sk(sk);
struct sock_exterr_skb *serr;
@@
-279,7
+283,7
@@
void ip_icmp_error(struct sock *sk, struct sk_buff *skb, int err,
kfree_skb(skb);
}
kfree_skb(skb);
}
-void ip_local_error(struct sock *sk, int err,
u32 daddr, u
16 port, u32 info)
+void ip_local_error(struct sock *sk, int err,
__be32 daddr, __be
16 port, u32 info)
{
struct inet_sock *inet = inet_sk(sk);
struct sock_exterr_skb *serr;
{
struct inet_sock *inet = inet_sk(sk);
struct sock_exterr_skb *serr;
@@
-351,7
+355,7
@@
int ip_recv_error(struct sock *sk, struct msghdr *msg, int len)
sin = (struct sockaddr_in *)msg->msg_name;
if (sin) {
sin->sin_family = AF_INET;
sin = (struct sockaddr_in *)msg->msg_name;
if (sin) {
sin->sin_family = AF_INET;
- sin->sin_addr.s_addr = *(
u
32*)(skb->nh.raw + serr->addr_offset);
+ sin->sin_addr.s_addr = *(
__be
32*)(skb->nh.raw + serr->addr_offset);
sin->sin_port = serr->port;
memset(&sin->sin_zero, 0, sizeof(sin->sin_zero));
}
sin->sin_port = serr->port;
memset(&sin->sin_zero, 0, sizeof(sin->sin_zero));
}