Hi!

On Wed, Jul 18, 2012 at 2:44 PM, Heiko Hund <heiko.h...@sophos.com> wrote:
> Hi Alon
>
> On Tuesday 26 June 2012 20:05:02 Alon Bar-Lev wrote:
>> Currently openvpn requires/endorses specifying full path in plugin
>> parameter.
>
> Specifying a custom full path is probably something we need to ban in the
> (near) future, as it imposes an attack vector for privilege escalation by code
> injection when openvpn is not running as another user or has access to
> privilege escalation by other means (like the yet to be submitted Windows
> interactive service).
>
> This patch is a step towards this so I think it's absolutely worth a feature
> ACK.
>
>>  AM_CFLAGS = \
>> +     -DOPENVPN_PLUGINDIR="\"$(plugindir)\"" \
>
> Couldn't OPENVPN_PLUGINDIR be an AC_DEFINE in config.h instead? Would keep the
> command line shorter and more readable.
>
>> +         if (ExpandEnvironmentStringsW(plugindir, _plugindir_expanded,
> SIZE(_plugindir_expanded)) != 0)
>
> There's _countof defined in the Windows headers that could replace the non-std
> SIZE here. I had to look SIZE() up. It does the right thing, though.
>
>> +      _snwprintf(_abs_so_pathname, SIZE(_abs_so_pathname), L"%s%C%s",
>> plugindir, OS_SPECIFIC_DIRSEP, wide_string(p->so_pathname, &gc));
>
> You need to make sure _abs_so_pathname is zero terminated here. However, I
> found that _snwprintf does not return a negative value when the buffer is too
> small. Contrary to http://msdn.microsoft.com/en-us/library/2ts7cx93.aspx
> So, this could need more research to get right.

Thank you so much!
I did not know sn*printf of MS are not C99 complaint!

Alon.

Reply via email to