From: "Paweł Sikora" <pluto@pld-linux.org>
To: linux-kernel@vger.kernel.org
Subject: Re: [2.6 patch] kill IN_STRING_C
Date: Mon, 8 Nov 2004 19:43:20 +0100 [thread overview]
Message-ID: <200411081943.21310.pluto@pld-linux.org> (raw)
On Monday 08 of November 2004 19:31, you wrote:
> On Mon, Nov 08, 2004 at 07:04:13PM +0100, Pawe?? Sikora wrote:
> > On Monday 08 of November 2004 17:31, you wrote:
> > > On Mon, Nov 08, 2004 at 05:19:35PM +0100, Andi Kleen wrote:
> > > > > Rethinking it, I don't even understand the sprintf example in your
> > > > > changelog entry - shouldn't an inclusion of kernel.h always get it
> > > > > right?
> > > >
> > > > Newer gcc rewrites sprintf(buf,"%s",str) to strcpy(buf,str)
> > > > transparently.
> > >
> > > Which gcc is "Newer"?
> > >
> > > My gcc 3.4.2 didn't show this problem.
> >
> > #include <stdio.h>
> > #include <string.h>
> > char buf[128];
> > void test(char *str)
> > {
> > sprintf(buf, "%s", str);
> > }
> >...
> > jmp strcpy
> >...
>
> This is the userspace example.
>
> The kernel example is:
>
> #include <linux/string.h>
> #include <linux/kernel.h>
>
> char buf[128];
> void test(char *str)
> {
> sprintf(buf, "%s", str);
> }
>
>
> This results with gcc-3.4 (GCC) 3.4.2 (Debian 3.4.2-3) in:
>
> .file "test.c"
> .section .rodata.str1.1,"aMS",@progbits,1
> .LC0:
> .string "%s"
> .text
> .p2align 4,,15
> .globl test
> .type test, @function
> test:
> pushl %eax
> pushl $.LC0
> pushl $buf
> call sprintf
> addl $12, %esp
> ret
> .size test, .-test
> .globl buf
> .bss
> .align 32
> .type buf, @object
> .size buf, 128
> buf:
> .zero 128
> .section .note.GNU-stack,"",@progbits
> .ident "GCC: (GNU) 3.4.2 (Debian 3.4.2-3)"
[~/rpm/BUILD] # cat sp.c
#include <linux/string.h>
#include <linux/kernel.h>
char buf[128];
void test(char *str)
{
sprintf(buf, "%s", str);
}
[~/rpm/BUILD] # gcc -Wall sp.c -S -O2 -fomit-frame-pointer -mregparm=3
-nostdinc -isystem /usr/src/linux/include
sp.c: In function `test':
sp.c:7: warning: implicit declaration of function `sprintf'
[~/rpm/BUILD] # cat sp.s
.file "sp.c"
.text
.p2align 4,,15
.globl test
.type test, @function
test:
movl %eax, %edx
movl $buf, %eax
jmp strcpy
.size test, .-test
.comm buf,128,32
.section .note.GNU-stack,"",@progbits
.ident "GCC: (GNU) 3.4.3 (PLD Linux)"
What now?
--
/* Copyright (C) 2003, SCO, Inc. This is valuable Intellectual Property. */
#define say(x) lie(x)
next reply other threads:[~2004-11-08 18:51 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-11-08 18:43 Paweł Sikora [this message]
-- strict thread matches above, loose matches on Subject: below --
2004-11-07 14:24 Adrian Bunk
2004-11-08 13:44 ` Andi Kleen
2004-11-08 15:34 ` Adrian Bunk
2004-11-08 16:19 ` Andi Kleen
2004-11-08 16:31 ` Adrian Bunk
2004-11-08 17:51 ` Andi Kleen
2004-11-08 18:34 ` Adrian Bunk
2004-11-08 19:01 ` Andi Kleen
2004-11-08 18:04 ` Paweł Sikora
2004-11-08 18:31 ` Adrian Bunk
2004-11-08 19:12 ` linux-os
2004-11-08 21:27 ` Adrian Bunk
2004-11-08 22:15 ` linux-os
2004-11-08 22:29 ` Adrian Bunk
2004-11-08 22:57 ` linux-os
2004-11-08 23:08 ` Adrian Bunk
2004-11-09 12:44 ` linux-os
2004-11-09 13:43 ` linux-os
2004-11-08 18:22 ` linux-os
2004-11-08 19:31 ` Ryan Cumming
2004-11-09 13:58 ` Arnd Bergmann
2004-11-10 2:30 ` Adrian Bunk
[not found] ` <200411081942.38954.pluto@pld-linux.org>
[not found] ` <20041108185222.GE15077@stusta.de>
2004-11-08 19:11 ` Paweł Sikora
2004-11-08 21:25 ` Adrian Bunk
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=200411081943.21310.pluto@pld-linux.org \
--to=pluto@pld-linux.org \
--cc=linux-kernel@vger.kernel.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
Powered by JetHome