patch-2.1.10 linux/net/core/datagram.c

Next file: linux/net/core/dev.c
Previous file: linux/net/bridge/br.c
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v2.1.9/linux/net/core/datagram.c linux/net/core/datagram.c
@@ -166,9 +166,15 @@
  *	Copy a datagram to a linear buffer.
  */
 
-void skb_copy_datagram(struct sk_buff *skb, int offset, char *to, int size)
+int skb_copy_datagram(struct sk_buff *skb, int offset, char *to, int size)
 {
-	copy_to_user(to,skb->h.raw+offset,size);
+	int err;
+	err = copy_to_user(to, skb->h.raw+offset, size);
+	if (err)
+	{
+		err = -EFAULT;
+	}
+	return err;
 }
 
 
@@ -176,9 +182,16 @@
  *	Copy a datagram to an iovec.
  */
  
-void skb_copy_datagram_iovec(struct sk_buff *skb, int offset, struct iovec *to, int size)
+int skb_copy_datagram_iovec(struct sk_buff *skb, int offset, struct iovec *to,
+			    int size)
 {
-	memcpy_toiovec(to,skb->h.raw+offset,size);
+	int err;
+	err = memcpy_toiovec(to, skb->h.raw+offset, size);
+	if (err)
+	{
+		err = -EFAULT;
+	}
+	return err;
 }
 
 /*

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov