diff options
Diffstat (limited to 'fs/9p/conv.c')
| -rw-r--r-- | fs/9p/conv.c | 28 |
1 files changed, 19 insertions, 9 deletions
diff --git a/fs/9p/conv.c b/fs/9p/conv.c index 32a9f99154e2..bf1f10067960 100644 --- a/fs/9p/conv.c +++ b/fs/9p/conv.c | |||
| @@ -116,13 +116,19 @@ static void buf_put_int64(struct cbuf *buf, u64 val) | |||
| 116 | } | 116 | } |
| 117 | } | 117 | } |
| 118 | 118 | ||
| 119 | static void buf_put_stringn(struct cbuf *buf, const char *s, u16 slen) | 119 | static char *buf_put_stringn(struct cbuf *buf, const char *s, u16 slen) |
| 120 | { | 120 | { |
| 121 | char *ret; | ||
| 122 | |||
| 123 | ret = NULL; | ||
| 121 | if (buf_check_size(buf, slen + 2)) { | 124 | if (buf_check_size(buf, slen + 2)) { |
| 122 | buf_put_int16(buf, slen); | 125 | buf_put_int16(buf, slen); |
| 126 | ret = buf->p; | ||
| 123 | memcpy(buf->p, s, slen); | 127 | memcpy(buf->p, s, slen); |
| 124 | buf->p += slen; | 128 | buf->p += slen; |
| 125 | } | 129 | } |
| 130 | |||
| 131 | return ret; | ||
| 126 | } | 132 | } |
| 127 | 133 | ||
| 128 | static inline void buf_put_string(struct cbuf *buf, const char *s) | 134 | static inline void buf_put_string(struct cbuf *buf, const char *s) |
| @@ -430,15 +436,19 @@ static inline void v9fs_put_int64(struct cbuf *bufp, u64 val, u64 * p) | |||
| 430 | static void | 436 | static void |
| 431 | v9fs_put_str(struct cbuf *bufp, char *data, struct v9fs_str *str) | 437 | v9fs_put_str(struct cbuf *bufp, char *data, struct v9fs_str *str) |
| 432 | { | 438 | { |
| 433 | if (data) { | 439 | int len; |
| 434 | str->len = strlen(data); | 440 | char *s; |
| 435 | str->str = bufp->p; | 441 | |
| 436 | } else { | 442 | if (data) |
| 437 | str->len = 0; | 443 | len = strlen(data); |
| 438 | str->str = NULL; | 444 | else |
| 439 | } | 445 | len = 0; |
| 440 | 446 | ||
| 441 | buf_put_stringn(bufp, data, str->len); | 447 | s = buf_put_stringn(bufp, data, len); |
| 448 | if (str) { | ||
| 449 | str->len = len; | ||
| 450 | str->str = s; | ||
| 451 | } | ||
| 442 | } | 452 | } |
| 443 | 453 | ||
| 444 | static int | 454 | static int |
