summaryrefslogtreecommitdiff
path: root/source3/rpc_parse/parse_prs.c
diff options
context:
space:
mode:
authorVolker Lendecke <vlendec@samba.org>2003-04-22 15:55:07 +0000
committerVolker Lendecke <vlendec@samba.org>2003-04-22 15:55:07 +0000
commit0865120fca988a8016f3dd9480f171794212e436 (patch)
tree865b68b18ff98940a8fab64336ff70c8ba8c302f /source3/rpc_parse/parse_prs.c
parentde690f13362f909c151f4b7e92d7a61f576b3685 (diff)
downloadsamba-0865120fca988a8016f3dd9480f171794212e436.tar.gz
samba-0865120fca988a8016f3dd9480f171794212e436.tar.bz2
samba-0865120fca988a8016f3dd9480f171794212e436.zip
parse_string is only used for the authentication negotiators.
It can itself determine the length of the string it has to transfer. Andrew B., could you take a look at the length calculation? Is that safe? Thanks, Volker (This used to be commit d5f1082753f84f0e3a22739055b6b9cbde29faa9)
Diffstat (limited to 'source3/rpc_parse/parse_prs.c')
-rw-r--r--source3/rpc_parse/parse_prs.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/source3/rpc_parse/parse_prs.c b/source3/rpc_parse/parse_prs.c
index 696142905b..e0a75d7382 100644
--- a/source3/rpc_parse/parse_prs.c
+++ b/source3/rpc_parse/parse_prs.c
@@ -1159,10 +1159,16 @@ BOOL prs_unistr(const char *name, prs_struct *ps, int depth, UNISTR *str)
not include the null-termination character.
********************************************************************/
-BOOL prs_string(const char *name, prs_struct *ps, int depth, char *str, int len, int max_buf_size)
+BOOL prs_string(const char *name, prs_struct *ps, int depth, char *str, int max_buf_size)
{
char *q;
int i;
+ int len;
+
+ if (UNMARSHALLING(ps))
+ len = strlen(&ps->data_p[ps->data_offset]);
+ else
+ len = strlen(str);
len = MIN(len, (max_buf_size-1));