[patch 2/2] 9p: change an int to unsigned int

Subsystems: 9p file system, networking [general], the rest

STALE5520d

3 messages, 3 authors, 2011-09-07 · open the first message on its own page

[patch 2/2] 9p: change an int to unsigned int

From: Dan Carpenter <hidden>
Date: 2011-08-26 17:00:00

The size of things should be unsigned because negative sizes are
silly.  My concern is the the limit checks don't take negative values
into consideration in p9_client_create()
	if (clnt->msize > clnt->trans_mod->maxsize)
		clnt->msize = clnt->trans_mod->maxsize;
and in p9_tag_alloc()
	int alloc_msize = min(c->msize, max_size);

I don't know if this is exported to user space?  Hopefully it's not
too late to change this.

Signed-off-by: Dan Carpenter <redacted>
diff --git a/include/net/9p/client.h b/include/net/9p/client.h
index 55ce72c..d479d7d 100644
--- a/include/net/9p/client.h
+++ b/include/net/9p/client.h
@@ -151,7 +151,7 @@ struct p9_req_t {
 
 struct p9_client {
 	spinlock_t lock; /* protect client structure */
-	int msize;
+	unsigned int msize;
 	unsigned char proto_version;
 	struct p9_trans_module *trans_mod;
 	enum p9_trans_status status;

Re: [patch 2/2] 9p: change an int to unsigned int

From: Aneesh Kumar K.V <hidden>
Date: 2011-08-30 07:38:52

On Fri, 26 Aug 2011 19:57:40 +0300, Dan Carpenter [off-list ref] wrote:
The size of things should be unsigned because negative sizes are
silly.  My concern is the the limit checks don't take negative values
into consideration in p9_client_create()
	if (clnt->msize > clnt->trans_mod->maxsize)
		clnt->msize = clnt->trans_mod->maxsize;
and in p9_tag_alloc()
	int alloc_msize = min(c->msize, max_size);

I don't know if this is exported to user space?  Hopefully it's not
too late to change this.
The change is also needed to make sure large msize value (429496729) works
Without the change it cause a server crash with Qemu 9p server.
quoted hunk
Signed-off-by: Dan Carpenter <redacted>
diff --git a/include/net/9p/client.h b/include/net/9p/client.h
index 55ce72c..d479d7d 100644
--- a/include/net/9p/client.h
+++ b/include/net/9p/client.h
@@ -151,7 +151,7 @@ struct p9_req_t {

 struct p9_client {
 	spinlock_t lock; /* protect client structure */
-	int msize;
+	unsigned int msize;
 	unsigned char proto_version;
 	struct p9_trans_module *trans_mod;
 	enum p9_trans_status status;
I applied this with comment update to 
git://git.kernel.org/pub/scm/linux/kernel/git/kvaneesh/v9fs.git for-upstream-next-merge

-aneesh

Re: [patch 2/2] 9p: change an int to unsigned int

From: Venkateswararao Jujjuri <hidden>
Date: 2011-09-07 16:09:40

On 08/26/2011 09:57 AM, Dan Carpenter wrote:
The size of things should be unsigned because negative sizes are
silly.  My concern is the the limit checks don't take negative values
into consideration in p9_client_create()
	if (clnt->msize>  clnt->trans_mod->maxsize)
		clnt->msize = clnt->trans_mod->maxsize;
and in p9_tag_alloc()
	int alloc_msize = min(c->msize, max_size);

I don't know if this is exported to user space?  Hopefully it's not
too late to change this.
It is not exported to user space but the other way is true;
 msize can be populate from mount option. It should be fine.
Signed-off-by: Dan Carpenter<redacted>
Reviewed-by: Venkateswararao Jujjuri <redacted>
quoted hunk
diff --git a/include/net/9p/client.h b/include/net/9p/client.h
index 55ce72c..d479d7d 100644
--- a/include/net/9p/client.h
+++ b/include/net/9p/client.h
@@ -151,7 +151,7 @@ struct p9_req_t {

  struct p9_client {
  	spinlock_t lock; /* protect client structure */
-	int msize;
+	unsigned int msize;
  	unsigned char proto_version;
  	struct p9_trans_module *trans_mod;
  	enum p9_trans_status status;
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help