mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH] [net/9p] Possible regression in p9_client_stat
@ 2009-07-13 13:49 Abhishek Kulkarni
  2009-07-13 13:49 ` [PATCH] [net/9p]: default 9p transport module fix Abhishek Kulkarni
  2009-07-14 18:29 ` [PATCH] [net/9p] Possible regression in p9_client_stat Eric Van Hensbergen
  0 siblings, 2 replies; 4+ messages in thread
From: Abhishek Kulkarni @ 2009-07-13 13:49 UTC (permalink / raw)
  To: linux-kernel; +Cc: ericvh, Abhishek Kulkarni, v9fs-developer, netdev

Fix a possible regression with p9_client_stat where it can try to kfree an ERR_PTR
after an erroneous p9pdu_readf. Also remove an unnecessary data buffer increment
in p9_client_read.

Signed-off-by: Abhishek Kulkarni <adkulkar@umail.iu.edu>
---
:100644 100644 dd43a82... cc25e63... M	net/9p/client.c
 net/9p/client.c |    7 ++-----
 1 files changed, 2 insertions(+), 5 deletions(-)

diff --git a/net/9p/client.c b/net/9p/client.c
index dd43a82..cc25e63 100644
--- a/net/9p/client.c
+++ b/net/9p/client.c
@@ -1098,7 +1098,6 @@ p9_client_read(struct p9_fid *fid, char *data, char __user *udata, u64 offset,
 
 	if (data) {
 		memmove(data, dataptr, count);
-		data += count;
 	}
 
 	if (udata) {
@@ -1192,9 +1191,9 @@ struct p9_wstat *p9_client_stat(struct p9_fid *fid)
 
 	err = p9pdu_readf(req->rc, clnt->dotu, "wS", &ignored, ret);
 	if (err) {
-		ret = ERR_PTR(err);
 		p9pdu_dump(1, req->rc);
-		goto free_and_error;
+		p9_free_req(clnt, req);
+		goto error;
 	}
 
 	P9_DPRINTK(P9_DEBUG_9P,
@@ -1211,8 +1210,6 @@ struct p9_wstat *p9_client_stat(struct p9_fid *fid)
 	p9_free_req(clnt, req);
 	return ret;
 
-free_and_error:
-	p9_free_req(clnt, req);
 error:
 	kfree(ret);
 	return ERR_PTR(err);
-- 
1.6.0.4


^ permalink raw reply	[flat|nested] 4+ messages in thread

* [PATCH] [net/9p]: default 9p transport module fix
  2009-07-13 13:49 [PATCH] [net/9p] Possible regression in p9_client_stat Abhishek Kulkarni
@ 2009-07-13 13:49 ` Abhishek Kulkarni
  2009-07-14 18:29   ` Eric Van Hensbergen
  2009-07-14 18:29 ` [PATCH] [net/9p] Possible regression in p9_client_stat Eric Van Hensbergen
  1 sibling, 1 reply; 4+ messages in thread
From: Abhishek Kulkarni @ 2009-07-13 13:49 UTC (permalink / raw)
  To: linux-kernel; +Cc: ericvh, Abhishek Kulkarni, v9fs-developer, netdev

The default 9p transport module is not chosen unless an option parameter (any)
is passed to mount, which thus returns a ENOPROTOSUPPORT. This fix moves the
check out of parse_opts into p9_client_create.

Signed-off-by: Abhishek Kulkarni <adkulkar@umail.iu.edu>
---
:100644 100644 cc25e63... 787ccdd... M	net/9p/client.c
 net/9p/client.c |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/net/9p/client.c b/net/9p/client.c
index cc25e63..787ccdd 100644
--- a/net/9p/client.c
+++ b/net/9p/client.c
@@ -117,9 +117,6 @@ static int parse_opts(char *opts, struct p9_client *clnt)
 		}
 	}
 
-	if (!clnt->trans_mod)
-		clnt->trans_mod = v9fs_get_default_trans();
-
 	kfree(options);
 	return ret;
 }
@@ -689,6 +686,9 @@ struct p9_client *p9_client_create(const char *dev_name, char *options)
 	if (err < 0)
 		goto error;
 
+	if (!clnt->trans_mod)
+		clnt->trans_mod = v9fs_get_default_trans();
+
 	if (clnt->trans_mod == NULL) {
 		err = -EPROTONOSUPPORT;
 		P9_DPRINTK(P9_DEBUG_ERROR,
-- 
1.6.0.4


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] [net/9p]: default 9p transport module fix
  2009-07-13 13:49 ` [PATCH] [net/9p]: default 9p transport module fix Abhishek Kulkarni
@ 2009-07-14 18:29   ` Eric Van Hensbergen
  0 siblings, 0 replies; 4+ messages in thread
From: Eric Van Hensbergen @ 2009-07-14 18:29 UTC (permalink / raw)
  To: Abhishek Kulkarni; +Cc: linux-kernel, v9fs-developer, netdev

applied v9fs-devel

On Mon, Jul 13, 2009 at 8:49 AM, Abhishek Kulkarni<adkulkar@umail.iu.edu> wrote:
> The default 9p transport module is not chosen unless an option parameter (any)
> is passed to mount, which thus returns a ENOPROTOSUPPORT. This fix moves the
> check out of parse_opts into p9_client_create.
>
> Signed-off-by: Abhishek Kulkarni <adkulkar@umail.iu.edu>
> ---
> :100644 100644 cc25e63... 787ccdd... M  net/9p/client.c
>  net/9p/client.c |    6 +++---
>  1 files changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/net/9p/client.c b/net/9p/client.c
> index cc25e63..787ccdd 100644
> --- a/net/9p/client.c
> +++ b/net/9p/client.c
> @@ -117,9 +117,6 @@ static int parse_opts(char *opts, struct p9_client *clnt)
>                }
>        }
>
> -       if (!clnt->trans_mod)
> -               clnt->trans_mod = v9fs_get_default_trans();
> -
>        kfree(options);
>        return ret;
>  }
> @@ -689,6 +686,9 @@ struct p9_client *p9_client_create(const char *dev_name, char *options)
>        if (err < 0)
>                goto error;
>
> +       if (!clnt->trans_mod)
> +               clnt->trans_mod = v9fs_get_default_trans();
> +
>        if (clnt->trans_mod == NULL) {
>                err = -EPROTONOSUPPORT;
>                P9_DPRINTK(P9_DEBUG_ERROR,
> --
> 1.6.0.4
>
>

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] [net/9p] Possible regression in p9_client_stat
  2009-07-13 13:49 [PATCH] [net/9p] Possible regression in p9_client_stat Abhishek Kulkarni
  2009-07-13 13:49 ` [PATCH] [net/9p]: default 9p transport module fix Abhishek Kulkarni
@ 2009-07-14 18:29 ` Eric Van Hensbergen
  1 sibling, 0 replies; 4+ messages in thread
From: Eric Van Hensbergen @ 2009-07-14 18:29 UTC (permalink / raw)
  To: Abhishek Kulkarni; +Cc: linux-kernel, v9fs-developer, netdev

applied v9fs-devel

On Mon, Jul 13, 2009 at 8:49 AM, Abhishek Kulkarni<adkulkar@umail.iu.edu> wrote:
> Fix a possible regression with p9_client_stat where it can try to kfree an ERR_PTR
> after an erroneous p9pdu_readf. Also remove an unnecessary data buffer increment
> in p9_client_read.
>
> Signed-off-by: Abhishek Kulkarni <adkulkar@umail.iu.edu>
> ---
> :100644 100644 dd43a82... cc25e63... M  net/9p/client.c
>  net/9p/client.c |    7 ++-----
>  1 files changed, 2 insertions(+), 5 deletions(-)
>
> diff --git a/net/9p/client.c b/net/9p/client.c
> index dd43a82..cc25e63 100644
> --- a/net/9p/client.c
> +++ b/net/9p/client.c
> @@ -1098,7 +1098,6 @@ p9_client_read(struct p9_fid *fid, char *data, char __user *udata, u64 offset,
>
>        if (data) {
>                memmove(data, dataptr, count);
> -               data += count;
>        }
>
>        if (udata) {
> @@ -1192,9 +1191,9 @@ struct p9_wstat *p9_client_stat(struct p9_fid *fid)
>
>        err = p9pdu_readf(req->rc, clnt->dotu, "wS", &ignored, ret);
>        if (err) {
> -               ret = ERR_PTR(err);
>                p9pdu_dump(1, req->rc);
> -               goto free_and_error;
> +               p9_free_req(clnt, req);
> +               goto error;
>        }
>
>        P9_DPRINTK(P9_DEBUG_9P,
> @@ -1211,8 +1210,6 @@ struct p9_wstat *p9_client_stat(struct p9_fid *fid)
>        p9_free_req(clnt, req);
>        return ret;
>
> -free_and_error:
> -       p9_free_req(clnt, req);
>  error:
>        kfree(ret);
>        return ERR_PTR(err);
> --
> 1.6.0.4
>
>

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2009-07-14 18:30 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-07-13 13:49 [PATCH] [net/9p] Possible regression in p9_client_stat Abhishek Kulkarni
2009-07-13 13:49 ` [PATCH] [net/9p]: default 9p transport module fix Abhishek Kulkarni
2009-07-14 18:29   ` Eric Van Hensbergen
2009-07-14 18:29 ` [PATCH] [net/9p] Possible regression in p9_client_stat Eric Van Hensbergen

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®