From: Kees Cook <keescook@chromium.org>
To: Qing Zhao <qing.zhao@oracle.com>
Cc: richard Biener <rguenther@suse.de>,
gcc-patches Nick Alcock via <gcc-patches@gcc.gnu.org>
Subject: Re: [patch][gcc12-changes] Add a new item about the support for automatic static variable initialization
Date: Tue, 28 Sep 2021 13:39:15 -0700 [thread overview]
Message-ID: <202109281336.77472FF@keescook> (raw)
In-Reply-To: <BFF3F4BB-1FAB-4FDD-B160-380044158175@oracle.com>
On Tue, Sep 28, 2021 at 08:31:13PM +0000, Qing Zhao wrote:
> Hi,
>
> This is the patch for the gcc12 changes per your request.
>
> Kees provided most of the wording.
>
> Please take a look and let’s know whether it’s good for commit?
>
> thanks.
>
> Qing
>
> ================================================
>
>
> From: qing zhao <qing.zhao@oracle.com>
> Date: Tue, 28 Sep 2021 12:01:42 -0700
> Subject: [PATCH] gcc-12/changes.html: Uninitialized stack variables
> initialization update
>
> * htdocs/gcc-12/changes.html (Eliminating uninitialized variables):
> Item about the support for automatic static variable initialization.
> ---
> htdocs/gcc-12/changes.html | 19 +++++++++++++++++++
> 1 file changed, 19 insertions(+)
>
> diff --git a/htdocs/gcc-12/changes.html b/htdocs/gcc-12/changes.html
> index 1f156a9..8e2979c 100644
> --- a/htdocs/gcc-12/changes.html
> +++ b/htdocs/gcc-12/changes.html
> @@ -245,6 +245,25 @@ a work-in-progress.</p>
> <!-- .................................................................. -->
> <h2>Other significant improvements</h2>
>
> +<h3 id="uninitialized">Eliminating uninitialized variables</h3>
> +
> +<ul>
> + <li>GCC can now initialize all stack variables implicitly, including
> + padding. This is intended to eliminate all classes of uninitialized
> + stack variable flaws. Lack of explicit initialization will still
> + warn when <code>-Wuninitialized</code> is active. For best
> + debugging, use of the new command-line option
> + <code>-ftrivial-auto-var-init=pattern</code> can be used to fill
> + variables with a repeated 0xFE pattern, which tends to illuminate
> + many bugs (e.g. pointers receive invalid addresses, sizes and indices
> + are very large). For best production results, the new command-line
> + option <code>-ftrivial-auto-var-init=zero</code> can be used to
> + fill variables with 0x00, which tends to provide a safer state for
> + bugs (e.g. pointers are NULL, strings are NULL filled, and sizes
Minor nit: I've always been corrected that "NULL" refers to a pointer, and
"NUL" refers to the "null character", so the latter use of NULL should be
"NUL": ... pointers are NULL, strings are NUL filled, and size ...
I mix this up all the time, so apologies if that got introduced by me!
:)
-Kees
> + and indices are 0).
> + </li>
> +</ul>
> +
> <h3 id="debug">Debugging formats</h3>
>
> <ul>
> --
> 1.9.1
>
>
--
Kees Cook
next prev parent reply other threads:[~2021-09-28 20:39 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-09-28 20:31 Qing Zhao
2021-09-28 20:39 ` Kees Cook [this message]
2021-09-29 10:39 ` Richard Biener
2021-09-29 14:18 ` Qing Zhao
2021-09-29 14:43 ` Qing Zhao
2021-09-29 17:15 ` Kees Cook
2021-09-29 14:14 ` Qing Zhao
2021-09-29 14:42 ` Martin Sebor
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=202109281336.77472FF@keescook \
--to=keescook@chromium.org \
--cc=gcc-patches@gcc.gnu.org \
--cc=qing.zhao@oracle.com \
--cc=rguenther@suse.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).