From: Momchil Velikov <velco@fadata.bg>
To: linux-kernel@vger.kernel.org
Cc: gcc@gcc.gnu.org, linuxppc-dev@lists.linuxppc.org
Subject: [PATCH] C undefined behavior fix
Date: 02 Jan 2002 01:03:25 +0200 [thread overview]
Message-ID: <87g05py8qq.fsf@fadata.bg> (raw)
[Cc: to gcc list, in case someone wants to argue about standards]
The appended patch fix incorrect code, which interferes badly with
optimizations in GCC 3.0.4 and GCC 3.1.
The GCC tries to replace the strcpy from a constant string source with
a memcpy, since the length is know at compile time.
Thus
strcpy (dst, "abcdef" + 2)
gives
memcpy (dst, "abcdef" + 2, 5)
However, GCC does not handle the case, when the above offset (2) is
not within the bounds of the string, which result in undefined
behavior according to ANSI/ISO C99.
The error is that
strcpy (namep, "linux,phandle" + 0xc0000000);
gets emitted as
memcpy (namep, "linux,phandle" + 0xc0000000, 14 - 0xc0000000);
Regards,
-velco
--- 1.3/arch/ppc/kernel/prom.c Wed Dec 26 18:27:54 2001
+++ edited/arch/ppc/kernel/prom.c Tue Jan 1 22:53:23 2002
@@ -997,7 +997,7 @@
prev_propp = &pp->next;
namep = (char *) (pp + 1);
pp->name = PTRUNRELOC(namep);
- strcpy(namep, RELOC("linux,phandle"));
+ memcpy (namep, RELOC("linux,phandle"), sizeof("linux,phandle"));
mem_start = ALIGN((unsigned long)namep + strlen(namep) + 1);
pp->value = (unsigned char *) PTRUNRELOC(&np->node);
pp->length = sizeof(np->node);
next reply other threads:[~2002-01-01 23:03 UTC|newest]
Thread overview: 204+ messages / expand[flat|nested] mbox.gz Atom feed top
2002-01-01 23:03 Momchil Velikov [this message]
2002-01-01 23:43 ` [PATCH] C undefined behavior fix Tom Rini
2002-01-02 6:54 ` Momchil Velikov
2002-01-02 15:39 ` Tom Rini
2002-01-02 15:50 ` Jakub Jelinek
2002-01-02 16:45 ` Paul Koning
2002-01-02 22:56 ` Paul Mackerras
2002-01-02 23:37 ` Momchil Velikov
2002-01-03 2:51 ` Paul Mackerras
2002-01-03 6:29 ` law
2002-01-03 13:16 ` Lars Brinkhoff
2002-01-04 9:05 ` Florian Weimer
2002-01-04 22:14 ` Paul Mackerras
2002-01-02 14:56 ` Joseph S. Myers
2002-01-02 10:29 ` Florian Weimer
2002-01-02 10:41 ` Momchil Velikov
2002-01-02 13:11 ` Jakub Jelinek
2002-01-02 15:54 ` Tom Rini
2002-01-02 11:28 ` Aaron Lehmann
2002-01-02 11:40 ` Momchil Velikov
2002-01-02 15:59 ` Tom Rini
2002-01-02 11:48 ` Alan Cox
2002-01-02 19:09 ` Tom Rini
2002-01-02 20:13 ` Joe Buck
2002-01-02 20:42 ` Tom Rini
2002-01-02 21:36 ` Richard Henderson
2002-01-02 22:05 ` Tom Rini
2002-01-02 22:23 ` jtv
2002-01-02 23:12 ` Tom Rini
2002-01-02 23:45 ` jtv
2002-01-03 0:01 ` Tom Rini
2002-01-03 0:07 ` Richard Henderson
2002-01-03 0:16 ` Tom Rini
2002-01-03 1:12 ` Richard Henderson
2002-01-03 0:20 ` jtv
2002-01-03 2:33 ` Paul Mackerras
2002-01-03 8:32 ` Richard Henderson
2002-01-03 10:10 ` Paul Mackerras
2002-01-03 22:41 ` Tim Hollebeek
2002-01-04 8:48 ` Florian Weimer
2002-01-03 10:03 ` Geert Uytterhoeven
2002-01-03 0:25 ` Alan Cox
2002-01-03 0:35 ` David Woodhouse
2002-01-03 2:10 ` Tom Rini
2002-01-03 22:39 ` Pavel Machek
2002-01-04 9:29 ` Paul Mackerras
2002-01-03 15:46 ` Edgar Toernig
2002-01-03 16:48 ` Momchil Velikov
2002-01-03 17:13 ` jtv
2002-01-03 21:26 ` Daniel Jacobowitz
2002-01-02 22:27 ` Richard Henderson
2002-01-02 22:35 ` Tom Rini
2002-01-02 22:44 ` Richard Henderson
2002-01-02 22:50 ` Tom Rini
2002-01-03 22:40 ` Pavel Machek
2002-01-04 8:42 ` Richard Henderson
2002-01-02 23:11 ` Paul Mackerras
2002-01-02 23:26 ` Tom Rini
2002-01-02 23:28 ` Momchil Velikov
2002-01-02 23:34 ` Tom Rini
2002-01-03 0:19 ` jtv
2002-01-03 0:29 ` Tom Rini
2002-01-03 1:03 ` jtv
2002-01-03 1:17 ` Tom Rini
2002-01-03 17:44 ` jtv
2002-01-03 4:08 ` Cameron Simpson
2002-01-03 4:32 ` Tom Rini
2002-01-04 8:42 ` [PATCH] " Florian Weimer
-- strict thread matches above, loose matches on Subject: below --
2002-01-02 10:02 Bernard Dautrevaux
2002-01-02 23:02 ` Paul Mackerras
2002-01-02 23:27 ` Momchil Velikov
2002-01-02 17:40 Petr Vandrovec
2002-01-02 22:24 ` David Woodhouse
2002-01-02 22:39 ` Joe Buck
2002-01-02 22:59 ` David Woodhouse
2002-01-03 18:44 ` Alexandre Oliva
2002-01-02 23:53 dewar
2002-01-02 23:59 ` Joe Buck
2002-01-03 3:12 ` Paul Mackerras
2002-01-03 15:45 ` Joe Buck
2002-01-03 0:12 dewar
2002-01-03 0:32 ` jtv
2002-01-06 19:37 ` Alexandre Oliva
2002-01-03 0:49 dewar
2002-01-03 10:05 Bernard Dautrevaux
2002-01-03 10:49 ` Paul Mackerras
2002-01-03 11:59 ` Lars Brinkhoff
2002-01-03 23:53 ` Paul Mackerras
2002-01-04 9:52 ` Lars Brinkhoff
2002-01-05 6:45 ` Paul Mackerras
2002-01-06 0:20 ` Lars Brinkhoff
2002-01-09 9:28 ` Fergus Henderson
2002-01-09 10:58 ` Gabriel Dos Reis
2002-01-03 10:35 Bernard Dautrevaux
2002-01-03 12:51 dewar
2002-01-03 13:28 dewar
2002-01-04 8:38 ` Florian Weimer
2002-01-04 11:35 ` Joseph S. Myers
2002-01-05 19:25 ` jkl
2002-01-05 19:37 ` Joseph S. Myers
2002-01-05 20:06 ` jkl
2002-01-05 21:42 ` Joseph S. Myers
2002-01-06 4:09 ` Paul Mackerras
2002-01-05 20:01 ` Florian Weimer
2002-01-05 20:17 ` jkl
2002-01-05 20:51 ` Florian Weimer
2002-01-04 12:14 dewar
2002-01-04 12:15 dewar
2002-01-04 22:43 dewar
2002-01-06 3:40 ` Paul Mackerras
2002-01-06 0:52 dewar
2002-01-06 4:26 dewar
2002-01-06 5:32 ` Paul Mackerras
2002-01-06 11:09 ` Momchil Velikov
2002-01-06 7:56 mike stump
2002-01-06 13:05 dewar
2002-01-06 13:41 ` Laurent Guerby
2002-01-06 13:07 dewar
2002-01-06 13:16 dewar
2002-01-06 13:22 ` Gabriel Dos Reis
2002-01-06 13:41 dewar
2002-01-06 16:58 ` Gabriel Dos Reis
2002-01-06 13:43 dewar
2002-01-06 13:55 ` Laurent Guerby
2002-01-06 16:22 dewar
2002-01-06 16:39 ` Alan Cox
2002-01-06 19:27 ` Laurent Guerby
2002-01-06 19:43 ` Alan Cox
2002-01-06 18:20 mike stump
2002-01-06 18:24 mike stump
2002-01-06 20:37 ` Gabriel Dos Reis
2002-01-06 21:59 ` Paul Mackerras
2002-01-06 22:19 ` Jakub Jelinek
2002-01-07 0:09 ` Tom Rini
2002-01-07 1:40 ` Alexandre Oliva
2002-01-06 18:37 mike stump
2002-01-06 19:29 dewar
2002-01-06 19:29 dewar
2002-01-06 19:32 dewar
2002-01-07 13:24 Bernard Dautrevaux
2002-01-07 21:49 ` jtv
2002-01-07 22:28 ` Tim Hollebeek
2002-01-07 22:16 ` jtv
2002-01-08 0:27 ` J.A. Magallon
2002-01-08 11:41 ` jtv
2002-01-08 12:36 ` Alexandre Oliva
2002-01-08 12:58 ` jtv
2002-01-09 19:47 ` Gérard Roudier
2002-01-09 20:44 ` jtv
2002-01-09 23:49 ` J.A. Magallon
2002-01-10 0:19 ` Peter Barada
2002-01-10 1:47 ` Fergus Henderson
2002-01-10 15:30 ` Peter Barada
2002-01-10 10:13 ` Matthias Benkmann
2002-01-10 10:44 ` Bernd Petrovitsch
2002-01-07 13:29 Bernard Dautrevaux
2002-01-07 18:38 mike stump
2002-01-07 19:17 Bernard Dautrevaux
2002-01-07 19:18 mike stump
2002-01-07 19:36 mike stump
2002-01-07 21:21 ` Theodore Tso
2002-01-08 0:19 ` Paul Mackerras
2002-01-08 1:02 ` Richard Henderson
2002-01-07 22:26 Tim McDaniel
2002-01-07 22:56 mike stump
2002-01-07 23:11 dewar
2002-01-07 23:12 dewar
2002-01-07 23:15 dewar
2002-01-07 23:20 dewar
2002-01-07 23:46 mike stump
2002-01-08 0:16 mike stump
2002-01-08 11:33 ` jtv
2002-01-08 9:44 Bernard Dautrevaux
2002-01-08 11:44 ` 'jtv'
2002-01-08 11:12 Bernard Dautrevaux
2002-01-11 9:52 ` Horst von Brand
2002-01-09 0:51 dewar
2002-01-09 1:19 dewar
2002-01-09 1:51 mike stump
2002-01-09 2:13 dewar
2002-01-09 2:18 dewar
2002-01-09 9:06 Bernard Dautrevaux
2002-01-09 9:25 ` Bernd Petrovitsch
2002-01-09 10:40 dewar
2002-01-09 10:41 Bernard Dautrevaux
2002-01-09 21:59 ` Gérard Roudier
2002-01-09 10:42 dewar
2002-01-09 19:53 mike stump
2002-01-09 20:12 ` Paul Koning
2002-01-09 20:08 dewar
2002-01-09 20:32 dewar
2002-01-09 21:43 ` Paul Koning
2002-01-09 21:54 dewar
2002-01-10 1:21 dewar
2002-01-10 4:37 ` Tim Hollebeek
2002-01-10 1:22 dewar
2002-01-10 2:16 dewar
2002-01-10 4:33 dewar
2002-01-10 9:03 Bernard Dautrevaux
2002-01-10 10:40 ` David Weinehall
2002-01-10 12:18 dewar
2002-01-10 12:37 ` Erik Trulsson
2002-01-10 15:27 ` Florian Weimer
2002-01-10 19:01 Bernard Dautrevaux
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=87g05py8qq.fsf@fadata.bg \
--to=velco@fadata.bg \
--cc=gcc@gcc.gnu.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linuxppc-dev@lists.linuxppc.org \
/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