From: Julia Lawall <julia@diku.dk>
To: marcel@holtmann.org, maxk@qualcomm.com,
linux-kernel@vger.kernel.org, kernel-janitors@vger.kernel.org
Subject: [PATCH] /net/bluetooth: Use sockfd_put
Date: Sun, 6 Jan 2008 16:51:45 +0100 (CET) [thread overview]
Message-ID: <Pine.LNX.4.64.0801061650370.24950@ask.diku.dk> (raw)
From: Julia Lawall <julia@diku.dk>
The function sockfd_lookup uses fget on the value that is stored in the
file field of the returned structure, so fput should ultimately be applied
to this value. This can be done directly, but it seems better to use the
specific macro sockfd_put, which does the same thing.
The problem was fixed using the following semantic patch.
(http://www.emn.fr/x-info/coccinelle/)
// <smpl>
@@
expression s;
@@
s = sockfd_lookup(...)
...
+ sockfd_put(s);
?- fput(s->file);
// </smpl>
Signed-off-by: Julia Lawall <julia@diku.dk>
---
diff -u -p a/net/bluetooth/bnep/sock.c b/net/bluetooth/bnep/sock.c
--- a/net/bluetooth/bnep/sock.c 2007-11-08 08:00:52.000000000 +0100
+++ b/net/bluetooth/bnep/sock.c 2008-01-06 11:35:17.000000000 +0100
@@ -94,7 +94,7 @@ static int bnep_sock_ioctl(struct socket
return err;
if (nsock->sk->sk_state != BT_CONNECTED) {
- fput(nsock->file);
+ sockfd_put(nsock);
return -EBADFD;
}
@@ -103,7 +103,7 @@ static int bnep_sock_ioctl(struct socket
if (copy_to_user(argp, &ca, sizeof(ca)))
err = -EFAULT;
} else
- fput(nsock->file);
+ sockfd_put(nsock);
return err;
diff -u -p a/net/bluetooth/cmtp/sock.c b/net/bluetooth/cmtp/sock.c
--- a/net/bluetooth/cmtp/sock.c 2007-11-08 08:00:52.000000000 +0100
+++ b/net/bluetooth/cmtp/sock.c 2008-01-06 11:35:17.000000000 +0100
@@ -88,7 +88,7 @@ static int cmtp_sock_ioctl(struct socket
return err;
if (nsock->sk->sk_state != BT_CONNECTED) {
- fput(nsock->file);
+ sockfd_put(nsock);
return -EBADFD;
}
@@ -97,7 +97,7 @@ static int cmtp_sock_ioctl(struct socket
if (copy_to_user(argp, &ca, sizeof(ca)))
err = -EFAULT;
} else
- fput(nsock->file);
+ sockfd_put(nsock);
return err;
diff -u -p a/net/bluetooth/hidp/sock.c b/net/bluetooth/hidp/sock.c
--- a/net/bluetooth/hidp/sock.c 2007-11-08 08:00:52.000000000 +0100
+++ b/net/bluetooth/hidp/sock.c 2008-01-06 11:35:18.000000000 +0100
@@ -86,13 +86,13 @@ static int hidp_sock_ioctl(struct socket
isock = sockfd_lookup(ca.intr_sock, &err);
if (!isock) {
- fput(csock->file);
+ sockfd_put(csock);
return err;
}
if (csock->sk->sk_state != BT_CONNECTED || isock->sk->sk_state != BT_CONNECTED) {
- fput(csock->file);
- fput(isock->file);
+ sockfd_put(csock);
+ sockfd_put(isock);
return -EBADFD;
}
@@ -101,8 +101,8 @@ static int hidp_sock_ioctl(struct socket
if (copy_to_user(argp, &ca, sizeof(ca)))
err = -EFAULT;
} else {
- fput(csock->file);
- fput(isock->file);
+ sockfd_put(csock);
+ sockfd_put(isock);
}
return err;
next reply other threads:[~2008-01-06 15:52 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-01-06 15:51 Julia Lawall [this message]
2008-01-08 6:38 ` David Miller
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=Pine.LNX.4.64.0801061650370.24950@ask.diku.dk \
--to=julia@diku.dk \
--cc=kernel-janitors@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=marcel@holtmann.org \
--cc=maxk@qualcomm.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®