[stgt] [PATCH] Uses size_t for open_memstream size parameter.

Thadeu Lima de Souza Cascardo cascardo at linux.vnet.ibm.com
Mon Jun 17 22:35:25 CEST 2013


open_memstream expects a size_t pointer instead of an int pointer. In
64-bit platforms, size_t is 64-bit. Using the int pointer will make
other bytes be overriden when the stream is closed and on big-endian
platforms, the size will be updated to 0, which will make tgtadm create
invalid requests for tgtd.

iqn.2010-10.org.example:volume-123
tgtadm: invalid request

The size_t pointer cast hid this problem, which would produce a warning
otherwise.

Signed-off-by: Thadeu Lima de Souza Cascardo <cascardo at linux.vnet.ibm.com>
---
 usr/concat_buf.c |    2 +-
 usr/util.h       |    2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/usr/concat_buf.c b/usr/concat_buf.c
index 00661d4..d1fe53e 100644
--- a/usr/concat_buf.c
+++ b/usr/concat_buf.c
@@ -29,7 +29,7 @@
 
 void concat_buf_init(struct concat_buf *b)
 {
-	b->streamf = open_memstream(&b->buf, (size_t *)&b->size);
+	b->streamf = open_memstream(&b->buf, &b->size);
 	b->err = b->streamf ? 0 : errno;
 	b->used = 0;
 }
diff --git a/usr/util.h b/usr/util.h
index 93f9c89..d01d58b 100644
--- a/usr/util.h
+++ b/usr/util.h
@@ -195,7 +195,7 @@ struct concat_buf {
 	int err;
 	int used;
 	char *buf;
-	int size;
+	size_t size;
 };
 
 void concat_buf_init(struct concat_buf *b);
-- 
1.7.1

--
To unsubscribe from this list: send the line "unsubscribe stgt" in
the body of a message to majordomo at vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html



More information about the stgt mailing list