harmony-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Alexey Petrenko" <alexey.a.petre...@gmail.com>
Subject Re: Strategy for Harmony to work with Visual Studio 2005?
Date Mon, 10 Jul 2006 11:58:45 GMT
OK. Security is always good.
But I think that it is better to use C99 functions mentioned by Ivan.

I've checked that snprintf function is implemented in glibc and MSVS 2003.

SY, Alexey


2006/7/10, Xiao-Feng Li <xiaofeng.li@gmail.com>:
> My idea is NOT to write wrappers for Microsoft extentions. First, they
> are to enhance our own C code safety with more checkings; second, they
> are not MS extensions. The only thing is, they are enlighted by and
> have similar APIs as MS's safe CRT.
>
> Thanks,
> xiaofeng
>
> On 7/9/06, Alexey Petrenko <alexey.a.petrenko@gmail.com> wrote:
> > I think that creating such wrappers and implementing non standard MS
> > extensions for another platforms is not a good idea. What will we do
> > if this extension will not be accepted? Rewrite everything again?
> >
> > I agree that such extension is probably good. But we should wait until
> > community will accept them and widely used compilers will implement
> > them.
> >
> > SY, Alexey
> >
> > 2006/7/7, Xiao-Feng Li <xiaofeng.li@gmail.com>:
> > > I would suggest another approach.
> > >
> > > Since the safe CRT APIs are mostly similar to the original counterpart
> > > but enforcing safety checks and validations, we can take them as
> > > coding conventions, so as to achieve both the safety and portability.
> > >
> > > For example, with strcpy, we do this way:
> > >
> > > step 1. write a safe version strcpy_s on platforms that have no safe
> > > CRT support, see below.
> > > step 2. replace all strcpy(dst, src) invocations with strcpy_s(dst, count,
src);
> > >
> > > This version of strcpy_s is only for illustration purpose and follow
> > > the standard safety checkings.
> > >
> > > #define MAX_STR_LEN (1<<30)
> > >
> > > #ifndef SAFE_CRT
> > > int strcpy_s(dst, count, src)
> > > {
> > >      if( dst != null && count > 0 && count <= MAX_STR_LEN
)
> > >           dst[0] = '\0';
> > >
> > >      if( dst == NULL || src == NULL ) return -1;
> > >
> > >      if( count == 0 || count > MAX_STR_LEN ) return -1;
> > >
> > >      if( count <= strlen(src) ) return -1;  //strlen should use safer version
> > >
> > >      if( mem_overlap (dst, src) ) return -1;
> > >
> > >      strcpy(dst, src);
> > >
> > >      return 0;
> > > }
> > > #endif
> > >
> > >
> > > Thanks,
> > > xiaofeng
> > >
> > > On 7/7/06, Gregory Shimansky <gshimansky@gmail.com> wrote:
> > > > On Thursday 06 July 2006 14:35 Xiao-Feng Li wrote:
> > > > > Ok, then I will get back to VC7 at the moment. :-)  Let's wait till
> > > > > its acceptance by the community.
> > > > >
> > > > > Actually I don't see them as new APIs; instead, I view them as
> > > > > enforced good coding conventions that help to achieve better security,
> > > > > e.g., always check the buffer size in debug mode. (Personally I like
> > > > > the changes immediately when I met them. My only question was why
we
> > > > > didn't do that earlier. :-)
> > > >
> > > > If they were just drop in replacements of the old functions this could
be done
> > > > quickly. But they are not compatible for the most part and so may complicate
> > > > the code significantly to support both old (e.g. VC7 and older, cyginw/mingw
> > > > targets) and new version.
> > > >
> > > > You can use includes from Platform SDK which has headers compatible with
old
> > > > API [1] unless MS has changed new versions of Platform SDK to have this
> > > > secure stuff and no alternative since I wrote that email.
> > > >
> > > > > On 7/6/06, Geir Magnusson Jr <geir@pobox.com> wrote:
> > > > > > I think the key reason is that this is non-standard stuff from
> > > > > > microsoft's for-fee toolchain, and people in OSS try to avoid
having a
> > > > > > dependency on that.
> > > > > >
> > > > > > I wouldn't mind supporting this at some point a) once it becomes
a
> > > > > > standard and b) has broad acceptance, but I'm guessing that's
going to
> > > > > > take years.
> > > > > >
> > > > > > People who have used the free version of MSFT tools seem to
just set the
> > > > > > flag as you note.
> > > >
> > > > There are two flags. I've found the second in [2]. But I didn't try to
use the
> > > > because I used Platform SDK includes workaround. Maybe defining them is
still
> > > > not enough.
> > > >
> > > > [1]
> > > > http://mail-archives.apache.org/mod_mbox/incubator-harmony-dev/200606.mbox/<208da7a50606011434i405b7d5ao4be8a9fefc52e183%40mail.gmail.com>
> > > >
> > > > [2]
> > > > http://www.wxwidgets.org/wiki/index.php/MSVC_.NET_Setup_Guide#Version_Specific_Comments_.26_Instructions
> > > >
> > > > --
> > > > Gregory Shimansky, Intel Middleware Products Division
> > > >
> > > > ---------------------------------------------------------------------
> > > > Terms of use : http://incubator.apache.org/harmony/mailing.html
> > > > To unsubscribe, e-mail: harmony-dev-unsubscribe@incubator.apache.org
> > > > For additional commands, e-mail: harmony-dev-help@incubator.apache.org
> > > >
> > > >
> > >
> > > ---------------------------------------------------------------------
> > > Terms of use : http://incubator.apache.org/harmony/mailing.html
> > > To unsubscribe, e-mail: harmony-dev-unsubscribe@incubator.apache.org
> > > For additional commands, e-mail: harmony-dev-help@incubator.apache.org
> > >
> > >
> >
> >
> > --
> > Alexey A. Petrenko
> > Intel Middleware Products Division
> >
> > ---------------------------------------------------------------------
> > Terms of use : http://incubator.apache.org/harmony/mailing.html
> > To unsubscribe, e-mail: harmony-dev-unsubscribe@incubator.apache.org
> > For additional commands, e-mail: harmony-dev-help@incubator.apache.org
> >
> >
>
> ---------------------------------------------------------------------
> Terms of use : http://incubator.apache.org/harmony/mailing.html
> To unsubscribe, e-mail: harmony-dev-unsubscribe@incubator.apache.org
> For additional commands, e-mail: harmony-dev-help@incubator.apache.org
>
>


-- 
Alexey A. Petrenko
Intel Middleware Products Division

---------------------------------------------------------------------
Terms of use : http://incubator.apache.org/harmony/mailing.html
To unsubscribe, e-mail: harmony-dev-unsubscribe@incubator.apache.org
For additional commands, e-mail: harmony-dev-help@incubator.apache.org


Mime
View raw message