[illumos-Advocates] [RTI] 1222-1224, 1230 constant string overwrites and GCC4.x stdarg
Gordon Ross
gordon.w.ross at gmail.com
Tue Jul 26 08:02:55 PDT 2011
So, Rich? You going to push this?
I might integrate some other stuff soon...
On Mon, Jul 25, 2011 at 5:04 PM, Garrett D'Amore <garrett at damore.org> wrote:
> This looks reasonable to me.
>
> - Garrett
>
> On Sat, 2011-07-23 at 16:50 -0400, Richard Lowe wrote:
>> outgoing:
>> comparing with /builds/illumos-clone
>> searching for changes
>>
>> changeset: 13410:887780fcf2f5
>> user: Richard Lowe <richlowe at richlowe.net>
>> date: Mon Jun 27 18:29:43 2011 +0100
>>
>> description:
>> 1224 lp may overwrite constant data
>> Reviewed by: Gordon Ross <gwr at nexenta.com>
>> Reviewed by: Albert Lee <trisk at nexenta.com>
>>
>> modified:
>> usr/src/cmd/lp/cmd/lpadmin/options.c
>> usr/src/cmd/lp/cmd/lpfilter.c
>> usr/src/cmd/lp/cmd/lpforms.c
>> usr/src/cmd/lp/cmd/lpusers.c
>> usr/src/cmd/lp/lib/lp/isterminfo.c
>> usr/src/cmd/lp/lib/lp/tidbit.c
>>
>>
>> changeset: 13411:23161d58e78a
>> user: Richard Lowe <richlowe at richlowe.net>
>> date: Thu Jun 16 07:46:34 2011 +0100
>>
>> description:
>> 1223 catman may modify constant data
>> Reviewed by: Gordon Ross <gwr at nexenta.com>
>> Reviewed by: Albert Lee <trisk at nexenta.com>
>>
>> modified:
>> usr/src/cmd/man/src/man.c
>>
>>
>> changeset: 13412:b5ca1dcc04d2
>> user: Richard Lowe <richlowe at richlowe.net>
>> date: Wed Jun 15 13:30:14 2011 +0100
>>
>> description:
>> 1222 crypt may modify constant data
>> Reviewed by: Gordon Ross <gwr at nexenta.com>
>> Reviewed by: Albert Lee <trisk at nexenta.com>
>>
>> modified:
>> usr/src/cmd/crypt/crypt.c
>>
>>
>> changeset: 13413:862e53600e55
>> tag: tip
>> user: Richard Lowe <richlowe at richlowe.net>
>> date: Mon May 16 00:20:30 2011 +0100
>>
>> description:
>> 1230 need support for recent gcc stdarg builtins
>> 1240 va_*.h use non-existent __GNUC_MINOR
>> Reviewed by: Alexander Eremin <alexander.eremin at nexenta.com>
>> Reviewed by: Jason King <jason.brian.king at gmail.com>
>> Reviewed by: Gordon Ross <gwr at nexenta.com>
>> Reviewed by: Garret D'Amore <garrett at nexenta.com>
>>
>> modified:
>> usr/src/uts/common/sys/va_impl.h
>> usr/src/uts/common/sys/va_list.h
>>
>> pbchk:
>> Copyright check:
>> usr/src/cmd/crypt/crypt.c: no copyright claim for current year found
>> usr/src/cmd/lp/cmd/lpadmin/options.c: no copyright claim for current year found
>> usr/src/cmd/lp/cmd/lpfilter.c: no copyright claim for current year found
>> usr/src/cmd/lp/cmd/lpforms.c: no copyright claim for current year found
>> usr/src/cmd/lp/cmd/lpusers.c: no copyright claim for current year found
>> usr/src/cmd/lp/lib/lp/isterminfo.c: no copyright claim for current year found
>> usr/src/cmd/lp/lib/lp/tidbit.c: no copyright claim for current year found
>> usr/src/cmd/man/src/man.c: no copyright claim for current year found
>> usr/src/uts/common/sys/va_impl.h: no copyright claim for current year found
>> usr/src/uts/common/sys/va_list.h: no copyright claim for current year found
>>
>> C style check:
>> Skipping usr/src/cmd/lp/cmd/lpadmin/options.c...
>> Skipping usr/src/cmd/lp/cmd/lpfilter.c...
>> Skipping usr/src/cmd/lp/cmd/lpforms.c...
>> Skipping usr/src/cmd/lp/cmd/lpusers.c...
>> Skipping usr/src/cmd/lp/lib/lp/isterminfo.c...
>> Skipping usr/src/cmd/lp/lib/lp/tidbit.c...
>>
>> Header format check:
>>
>> Java style check:
>>
>> Mapfile comment check:
>>
>> File permission check:
>>
>> Keywords check:
>>
>> Comments check:
>>
>> Checking for new tags:
>>
>> Checking for multiple heads (or branches):
>>
>> Checking for branch changes:
>>
>> Checking for uncommitted changes:
>>
>> Checking for merges:
>>
>> As you can see, I NOT'd cmd/lp from cstyle, because it is utterly
>> rank. (I didn't make it worse).
>>
>> testing:
>>
>> String overwrites: These come from a workspace in which I'm working
>> on GCC4.x support. GCC puts constant strings in read-only memory.
>> Testing was via using the software (after building it with 4.x), and
>> then repeated here in a normal build, except in the case of catman.
>>
>> catman:
>> built with GCC4:
>> unset MANPATH; catman -w
>>
>> (the bug is MANPATH/PATH sensitive)
>>
>> lp:
>> run all the options-related ones with incorrect options, etc.
>>
>> built lp with -xstrconst (to get the reliable crash) and:
>> lpfilter -f posttek -F /etc/lp/fd/posttek.fd
>> (using posttek from build 148)
>>
>> crypt:
>> Built with -xstrconst:
>> crypt foo </etc/passwd
>>
>> The versions tested using xstrconst v. gcc4 were largely out of
>> convenience of forcing the appropriate strings to be crashily
>> constant, for ease of testing.
>>
>> stdarg changes:
>>
>> Built illumos with studio+gcc3
>> Built illumos+patches with gcc4+studio
>>
>> Tried to build a simple stdarg-using test program using an old GCC,
>> prior that supported by our headers (2.95), and watched it fail.
>>
>> Built that same test program using a GCC old enough to take the
>> __builtin_stdarg_start path (GCC 3.2.1 from SunFreeware), and
>> verified it built and ran. Verified with -E that it did take the
>> path through the conditional I expected.
>>
>>
>> gcc3.2:
>> % /usr/local/bin/gcc -E foo.c -nostdinc -I $ROOT/usr/include 2>&1 | grep '^ *__builtin'
>> __builtin_stdarg_start(ap, fmt);
>> gcc3.4:
>> % gcc -E foo.c -nostdinc -I $ROOT/usr/include 2>&1 | grep '^ *__builtin'
>> __builtin_va_start(ap, fmt);
>> gcc4.4:
>> % /opt/gcc/4.4.4/bin/gcc -E foo.c -nostdinc -I $ROOT/usr/include 2>&1 | grep '^ *__builtin'
>> __builtin_va_start(ap, fmt);
>>
>> I would REALLY appreciate other ideas for testing this, as I am,
>> obviously, pretty worried about breaking something so critical.
>>
>> mail_msg inline below.
>>
>> -- Rich
>>
>>
>> ==== Nightly distributed build started: Fri Jul 22 23:55:33 BST 2011 ====
>> ==== Nightly distributed build completed: Sat Jul 23 01:24:56 BST 2011 ====
>>
>> ==== Total build time ====
>>
>> real 1:29:22
>>
>> ==== Build environment ====
>>
>> /usr/bin/uname
>> SunOS richlowe.openindiana.org 5.11 oi_148 i86pc i386 i86pc
>>
>> /opt/SUNWspro/bin/dmake
>> dmake: Sun Distributed Make 7.8 SunOS_i386 Patch 126504-01 2007/07/19
>> number of concurrent jobs = 16
>>
>> 32-bit compiler
>> /opt/onbld/bin/i386/cw -_cc
>> cw version 1.29
>> primary: /opt/onnv-tools/SUNWspro/SS12/bin/cc
>> cc: Sun C 5.9 SunOS_i386 Patch 124868-10 2009/04/30
>> shadow: /usr/sfw/bin/gcc
>> gcc (GCC) 3.4.3 (csl-sol210-3_4-20050802)
>>
>> 64-bit compiler
>> /opt/onbld/bin/i386/cw -_cc
>> cw version 1.29
>> primary: /opt/onnv-tools/SUNWspro/SS12/bin/cc
>> cc: Sun C 5.9 SunOS_i386 Patch 124868-10 2009/04/30
>> shadow: /usr/sfw/bin/gcc
>> gcc (GCC) 3.4.3 (csl-sol210-3_4-20050802)
>>
>> /usr/java/bin/javac
>> java full version "1.6.0_21-b06"
>>
>> /usr/ccs/bin/as
>> as: Sun Compiler Common 12 SunOS_i386 snv_121 08/03/2009
>>
>> /usr/ccs/bin/ld
>> ld: Software Generation Utilities - Solaris Link Editors: 5.11-1.1725
>>
>> Build project: #build
>> Build taskid: 2618
>>
>> ==== Nightly argument issues ====
>>
>>
>> ==== Build version ====
>>
>> illumos-richlowe_73
>>
>> ==== Make clobber ERRORS ====
>>
>>
>> ==== Make tools clobber ERRORS ====
>>
>>
>> ==== Tools build errors ====
>>
>>
>> ==== Build errors (non-DEBUG) ====
>>
>>
>> ==== Build warnings (non-DEBUG) ====
>>
>>
>> ==== Elapsed build time (non-DEBUG) ====
>>
>> real 29:28.2
>> user 4:00:03.6
>> sys 53:15.8
>>
>> ==== Build noise differences (non-DEBUG) ====
>>
>>
>> ==== package build errors (non-DEBUG) ====
>>
>>
>> ==== Build errors (DEBUG) ====
>>
>>
>> ==== Build warnings (DEBUG) ====
>>
>>
>> ==== Elapsed build time (DEBUG) ====
>>
>> real 25:52.4
>> user 3:24:20.7
>> sys 45:42.3
>>
>> ==== Build noise differences (DEBUG) ====
>>
>>
>> ==== package build errors (DEBUG) ====
>>
>>
>> ==== Validating manifests against proto area ====
>>
>>
>> ==== Check ELF runtime attributes ====
>>
>>
>> ==== Diff ELF runtime attributes (since last build) ====
>>
>>
>> ==== 'dmake lint' of src ERRORS ====
>>
>>
>> ==== Elapsed time of 'dmake lint' of src ====
>>
>> real 19:43.0
>> user 1:07:34.1
>> sys 49:21.7
>>
>> ==== lint warnings src ====
>>
>>
>> ==== lint noise differences src ====
>>
>>
>> ==== cstyle/hdrchk errors ====
>>
>>
>> ==== Find core files ====
>>
>>
>> ==== Diff unreferenced files (since last build) ====
>>
>>
>> ==== Check lists of files ====
>>
>>
>> ==== Impact on file permissions ====
>>
>>
>> _______________________________________________
>> Advocates mailing list
>> Advocates at lists.illumos.org
>> http://lists.illumos.org/m/listinfo/advocates
>
>
>
> _______________________________________________
> Advocates mailing list
> Advocates at lists.illumos.org
> http://lists.illumos.org/m/listinfo/advocates
>
More information about the Advocates
mailing list