Skip to content

Commit

Permalink
[PATCH] v9fs: v9fs_put_str fix
Browse files Browse the repository at this point in the history
v9fs_put_str used to store pointer to the source string, instead of the
cbuf copy.  This patch corrects it.

Signed-off-by: Latchesar Ionkov <lucho@ionkov.net>
Cc: Eric Van Hensbergen <ericvh@ericvh.myip.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
  • Loading branch information
Latchesar Ionkov authored and Linus Torvalds committed Feb 3, 2006
1 parent 93c615f commit 05818a0
Showing 1 changed file with 19 additions and 9 deletions.
28 changes: 19 additions & 9 deletions fs/9p/conv.c
Original file line number Diff line number Diff line change
Expand Up @@ -116,13 +116,19 @@ static void buf_put_int64(struct cbuf *buf, u64 val)
}
}

static void buf_put_stringn(struct cbuf *buf, const char *s, u16 slen)
static char *buf_put_stringn(struct cbuf *buf, const char *s, u16 slen)
{
char *ret;

ret = NULL;
if (buf_check_size(buf, slen + 2)) {
buf_put_int16(buf, slen);
ret = buf->p;
memcpy(buf->p, s, slen);
buf->p += slen;
}

return ret;
}

static inline void buf_put_string(struct cbuf *buf, const char *s)
Expand Down Expand Up @@ -430,15 +436,19 @@ static inline void v9fs_put_int64(struct cbuf *bufp, u64 val, u64 * p)
static void
v9fs_put_str(struct cbuf *bufp, char *data, struct v9fs_str *str)
{
if (data) {
str->len = strlen(data);
str->str = bufp->p;
} else {
str->len = 0;
str->str = NULL;
}
int len;
char *s;

if (data)
len = strlen(data);
else
len = 0;

buf_put_stringn(bufp, data, str->len);
s = buf_put_stringn(bufp, data, len);
if (str) {
str->len = len;
str->str = s;
}
}

static int
Expand Down

0 comments on commit 05818a0

Please sign in to comment.