diff options
Diffstat (limited to 'source4/smb_server')
-rw-r--r-- | source4/smb_server/request.c | 10 | ||||
-rw-r--r-- | source4/smb_server/trans2.c | 4 |
2 files changed, 9 insertions, 5 deletions
diff --git a/source4/smb_server/request.c b/source4/smb_server/request.c index d119cadc95..e3121f8398 100644 --- a/source4/smb_server/request.c +++ b/source4/smb_server/request.c @@ -379,7 +379,7 @@ size_t req_push_str(struct smbsrv_request *req, char *dest, const char *str, int dest = req->out.buffer + PTR_DIFF(dest, buf0); } - len = push_string(req->out.hdr, dest, str, len, flags); + len = push_string(dest, str, len, flags); grow_size = len + PTR_DIFF(dest, req->out.data); @@ -435,6 +435,7 @@ static size_t req_pull_ucs2(struct smbsrv_request *req, const char **dest, const { int src_len, src_len2, alignment=0; ssize_t ret; + char *dest2; if (!(flags & STR_NOALIGN) && ucs2_align(req->in.buffer, src, flags)) { src++; @@ -465,12 +466,13 @@ static size_t req_pull_ucs2(struct smbsrv_request *req, const char **dest, const src_len2 += 2; } - ret = convert_string_talloc(req, CH_UTF16, CH_UNIX, src, src_len2, (const void **)dest); + ret = convert_string_talloc(req, CH_UTF16, CH_UNIX, src, src_len2, (void **)&dest2); if (ret == -1) { *dest = NULL; return 0; } + *dest = dest2; return src_len2 + alignment; } @@ -492,6 +494,7 @@ static size_t req_pull_ascii(struct smbsrv_request *req, const char **dest, cons { int src_len, src_len2; ssize_t ret; + char *dest2; if (flags & STR_NO_RANGE_CHECK) { src_len = byte_len; @@ -512,12 +515,13 @@ static size_t req_pull_ascii(struct smbsrv_request *req, const char **dest, cons src_len2++; } - ret = convert_string_talloc(req, CH_DOS, CH_UNIX, src, src_len2, (const void **)dest); + ret = convert_string_talloc(req, CH_DOS, CH_UNIX, src, src_len2, (void **)&dest2); if (ret == -1) { *dest = NULL; return 0; } + *dest = dest2; return src_len2; } diff --git a/source4/smb_server/trans2.c b/source4/smb_server/trans2.c index 48c10b3230..a5033f9b56 100644 --- a/source4/smb_server/trans2.c +++ b/source4/smb_server/trans2.c @@ -143,10 +143,10 @@ static size_t trans2_push_data_string(struct smbsrv_request *req, alignment = 1; if (dest_len > 0) { SCVAL(trans->out.data.data + offset, 0, 0); - ret = push_string(NULL, trans->out.data.data + offset + 1, str->s, dest_len-1, flags); + ret = push_string(trans->out.data.data + offset + 1, str->s, dest_len-1, flags); } } else { - ret = push_string(NULL, trans->out.data.data + offset, str->s, dest_len, flags); + ret = push_string(trans->out.data.data + offset, str->s, dest_len, flags); } /* sometimes the string needs to be terminated, but the length |