Am 21.03.21 um 15:46 schrieb Simon Rozman via Openvpn-devel:
> It's about using a standard recommended alias for the wcsdup():
> 
>> warning C4996: 'wcsdup': The POSIX name for this item is deprecated.
>> Instead, use the ISO C and C++ conformant name: _wcsdup. See online
>> help for details.
> 
> And the documentation says:
> 
>> The Microsoft-implemented POSIX function names strdup and wcsdup are
>> deprecated aliases for the _strdup and _wcsdup functions. By default,
>> they generate Compiler warning (level 3) C4996. The names are
>> deprecated because they don't follow the Standard C rules for
>> implementation-specific names. However, the functions are still
>> supported.
>>
>> We recommend you use _strdup and _wcsdup instead. Or, you can continue
>> to use these function names, and disable the warning. For more
>> information, see Turn off the warning and POSIX function names.
> 
> Reference: 
> https://docs.microsoft.com/en-us/cpp/c-runtime-library/reference/strdup-wcsdup
> Signed-off-by: Simon Rozman <si...@rozman.si>
> ---
>  src/openvpnserv/interactive.c | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/src/openvpnserv/interactive.c b/src/openvpnserv/interactive.c
> index 5d5cbfe6..b073a0d5 100644
> --- a/src/openvpnserv/interactive.c
> +++ b/src/openvpnserv/interactive.c
> @@ -899,7 +899,7 @@ ExecCommand(const WCHAR *argv0, const WCHAR *cmdline, 
> DWORD timeout)
>      si.cb = sizeof(si);
>  
>      /* CreateProcess needs a modifiable cmdline: make a copy */
> -    cmdline_dup = wcsdup(cmdline);
> +    cmdline_dup = _wcsdup(cmdline);
>      if (cmdline_dup && CreateProcessW(argv0, cmdline_dup, NULL, NULL, FALSE,
>                                        proc_flags, NULL, NULL, &si, &pi) )
>      {
> @@ -1181,7 +1181,7 @@ SetDNSDomain(const wchar_t *if_name, const char 
> *domain, undo_lists_t *lists)
>     /* Add to undo list if domain is non-empty */
>     if (err == 0 && wdomain[0] && lists)
>     {
> -        wchar_t *tmp_name = wcsdup(if_name);
> +        wchar_t *tmp_name = _wcsdup(if_name);
>          if (!tmp_name || AddListItem(&(*lists)[undo_domain], tmp_name))
>          {
>              free(tmp_name);
> @@ -1272,7 +1272,7 @@ HandleDNSConfigMessage(const dns_cfg_message_t *msg, 
> undo_lists_t *lists)
>  
>      if (msg->addr_len > 0)
>      {
> -        wchar_t *tmp_name = wcsdup(wide_name);
> +        wchar_t *tmp_name = _wcsdup(wide_name);
>          if (!tmp_name || AddListItem(&(*lists)[undo_type], tmp_name))
>          {
>              free(tmp_name);
> 

Acked-By: Arne Schwabe <a...@rfc2549.org>

I can accept the change in this function since it is windows specific
but overall I don't think we can reasonable move away from POSIX
function names and instead use the names with _ in front of it because
that is currently Windows specific. I am not sure what the idea for a
portable code is other than to set the _CRT_NONSTDC_NO_DEPRECATE option
on Windows.

Arne


_______________________________________________
Openvpn-devel mailing list
Openvpn-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/openvpn-devel

Reply via email to