mirror of
https://github.com/samba-team/samba.git
synced 2024-12-24 21:34:56 +03:00
s3-safe_string: Add checked_strlcpy()
This is strlcpy, just with an extra check of the parameters with sizeof(), use only where that works. Andrew Bartlett Autobuild-User: Andrew Bartlett <abartlet@samba.org> Autobuild-Date: Wed Mar 23 03:39:35 CET 2011 on sn-devel-104
This commit is contained in:
parent
1d22c3919d
commit
d73db405f7
@ -144,6 +144,17 @@ size_t __unsafe_string_function_usage_here_char__(void);
|
||||
? __unsafe_string_function_usage_here_size_t__() \
|
||||
: srvstr_push_fn(base_ptr, smb_flags2, dest, src, dest_len, flags))
|
||||
|
||||
/* This allows the developer to choose to check the arguments to
|
||||
strlcpy. if the compiler will optimize out function calls, then
|
||||
use this to tell if we are have the correct size buffer (this works only
|
||||
where sizeof() returns the size of the buffer, not the size of the
|
||||
pointer), so stack and static variables only */
|
||||
|
||||
#define checked_strlcpy(dest, src, size) \
|
||||
(sizeof(dest) != (size) \
|
||||
? __unsafe_string_function_usage_here_size_t__() \
|
||||
: strlcpy(dest, src, size))
|
||||
|
||||
#else
|
||||
|
||||
#define safe_strcpy safe_strcpy_fn
|
||||
@ -153,6 +164,7 @@ size_t __unsafe_string_function_usage_here_char__(void);
|
||||
#define clistr_push clistr_push_fn
|
||||
#define clistr_pull clistr_pull_fn
|
||||
#define srvstr_push srvstr_push_fn
|
||||
#define checked_strlcpy strlcpy
|
||||
|
||||
#endif
|
||||
|
||||
|
@ -238,7 +238,7 @@ DATA_BLOB negprot_spnego(TALLOC_CTX *ctx, struct smbd_server_connection *sconn)
|
||||
|
||||
memset(blob_out.data, '\0', 16);
|
||||
|
||||
safe_strcpy(unix_name, global_myname(), sizeof(unix_name)-1);
|
||||
checked_strlcpy(unix_name, global_myname(), sizeof(unix_name));
|
||||
strlower_m(unix_name);
|
||||
push_ascii_nstring(dos_name, unix_name);
|
||||
safe_strcpy((char *)blob_out.data, dos_name, 16);
|
||||
|
Loading…
Reference in New Issue
Block a user