svn commit: samba r24133 - in branches/SAMBA_3_2/source: include
lib libsmb smbd
vlendec at samba.org
vlendec at samba.org
Thu Aug 2 18:06:48 GMT 2007
Author: vlendec
Date: 2007-08-02 18:06:45 +0000 (Thu, 02 Aug 2007)
New Revision: 24133
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=24133
Log:
Explicitly pass flags2 down to push_string_fn
This needs a bit closer review, it also touches the client libs
Modified:
branches/SAMBA_3_2/source/include/safe_string.h
branches/SAMBA_3_2/source/lib/charcnv.c
branches/SAMBA_3_2/source/libsmb/clistr.c
branches/SAMBA_3_2/source/smbd/srvstr.c
Changeset:
Modified: branches/SAMBA_3_2/source/include/safe_string.h
===================================================================
--- branches/SAMBA_3_2/source/include/safe_string.h 2007-08-02 17:46:45 UTC (rev 24132)
+++ branches/SAMBA_3_2/source/include/safe_string.h 2007-08-02 18:06:45 UTC (rev 24133)
@@ -191,7 +191,7 @@
#define push_string_fn2(fn_name, fn_line, base_ptr, dest, src, dest_len, flags) \
(CHECK_STRING_SIZE(dest, dest_len) \
? __unsafe_string_function_usage_here_size_t__() \
- : push_string_fn(fn_name, fn_line, base_ptr, dest, src, dest_len, flags))
+ : push_string_fn(fn_name, fn_line, base_ptr, 0, dest, src, dest_len, flags))
#define pull_string_fn2(fn_name, fn_line, base_ptr, smb_flags2, dest, src, dest_len, src_len, flags) \
(CHECK_STRING_SIZE(dest, dest_len) \
Modified: branches/SAMBA_3_2/source/lib/charcnv.c
===================================================================
--- branches/SAMBA_3_2/source/lib/charcnv.c 2007-08-02 17:46:45 UTC (rev 24132)
+++ branches/SAMBA_3_2/source/lib/charcnv.c 2007-08-02 18:06:45 UTC (rev 24133)
@@ -1504,7 +1504,10 @@
is -1 then no maxiumum is used.
**/
-size_t push_string_fn(const char *function, unsigned int line, const void *base_ptr, void *dest, const char *src, size_t dest_len, int flags)
+size_t push_string_fn(const char *function, unsigned int line,
+ const void *base_ptr, uint16 flags2,
+ void *dest, const char *src,
+ size_t dest_len, int flags)
{
#ifdef DEVELOPER
/* We really need to zero fill here, not clobber
@@ -1524,7 +1527,7 @@
if (!(flags & STR_ASCII) && \
((flags & STR_UNICODE || \
- (SVAL(base_ptr, smb_flg2) & FLAGS2_UNICODE_STRINGS)))) {
+ (flags2 & FLAGS2_UNICODE_STRINGS)))) {
return push_ucs2(base_ptr, dest, src, dest_len, flags);
}
return push_ascii(dest, src, dest_len, flags);
Modified: branches/SAMBA_3_2/source/libsmb/clistr.c
===================================================================
--- branches/SAMBA_3_2/source/libsmb/clistr.c 2007-08-02 17:46:45 UTC (rev 24132)
+++ branches/SAMBA_3_2/source/libsmb/clistr.c 2007-08-02 18:06:45 UTC (rev 24133)
@@ -28,13 +28,21 @@
if (dest_len == -1) {
if (((ptrdiff_t)dest < (ptrdiff_t)cli->outbuf) || (buf_used > cli->bufsize)) {
DEBUG(0, ("Pushing string of 'unlimited' length into non-SMB buffer!\n"));
- return push_string_fn(function, line, cli->outbuf, dest, src, -1, flags);
+ return push_string_fn(function, line,
+ cli->outbuf,
+ SVAL(cli->outbuf, smb_flg2),
+ dest, src, -1, flags);
}
- return push_string_fn(function, line, cli->outbuf, dest, src, cli->bufsize - buf_used, flags);
+ return push_string_fn(function, line, cli->outbuf,
+ SVAL(cli->outbuf, smb_flg2),
+ dest, src, cli->bufsize - buf_used,
+ flags);
}
/* 'normal' push into size-specified buffer */
- return push_string_fn(function, line, cli->outbuf, dest, src, dest_len, flags);
+ return push_string_fn(function, line, cli->outbuf,
+ SVAL(cli->outbuf, smb_flg2),
+ dest, src, dest_len, flags);
}
size_t clistr_pull_fn(const char *function, unsigned int line,
Modified: branches/SAMBA_3_2/source/smbd/srvstr.c
===================================================================
--- branches/SAMBA_3_2/source/smbd/srvstr.c 2007-08-02 17:46:45 UTC (rev 24132)
+++ branches/SAMBA_3_2/source/smbd/srvstr.c 2007-08-02 18:06:45 UTC (rev 24133)
@@ -33,13 +33,17 @@
#if 0
DEBUG(0, ("Pushing string of 'unlimited' length into non-SMB buffer!\n"));
#endif
- return push_string_fn(function, line, base_ptr, dest, src, -1, flags);
+ return push_string_fn(function, line, base_ptr,
+ smb_flags2, dest, src, -1,
+ flags);
}
- return push_string_fn(function, line, base_ptr, dest, src, max_send - buf_used, flags);
+ return push_string_fn(function, line, base_ptr, smb_flags2,
+ dest, src, max_send - buf_used, flags);
}
/* 'normal' push into size-specified buffer */
- return push_string_fn(function, line, base_ptr, dest, src, dest_len, flags);
+ return push_string_fn(function, line, base_ptr, smb_flags2, dest, src,
+ dest_len, flags);
}
/*******************************************************************
More information about the samba-cvs
mailing list