* Floating Point Issue
@ 2007-09-27 11:41 mahamuni ashish
2007-09-27 15:17 ` Jan Engelhardt
` (5 more replies)
0 siblings, 6 replies; 9+ messages in thread
From: mahamuni ashish @ 2007-09-27 11:41 UTC (permalink / raw)
To: linux-kernel
I have small code....
#include <stdio.h>
#include <string.h>
int main()
{
float f= 1256.35;
char ch[4];
printf("\n1. f : %f",f);
memset(ch,'\0',strlen(ch) );
printf("\n2. f : %f",f);
return 0;
}
Expected output is
1. f : 1256.35
2. f : 1256.35
But I am getting the output
(on windows)
1. f : 1256.35
2. f : 0.000000
(on Linux)
1. f : 1256.35
segmentation fault
why?
Forgot the famous last words? Access your message archive online at http://in.messenger.yahoo.com/webmessengerpromo.php
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Floating Point Issue
2007-09-27 11:41 Floating Point Issue mahamuni ashish
@ 2007-09-27 15:17 ` Jan Engelhardt
2007-09-28 2:32 ` WANG Cong
2007-09-27 15:21 ` Xavier Bestel
` (4 subsequent siblings)
5 siblings, 1 reply; 9+ messages in thread
From: Jan Engelhardt @ 2007-09-27 15:17 UTC (permalink / raw)
To: mahamuni ashish; +Cc: linux-kernel
On Sep 27 2007 12:41, mahamuni ashish wrote:
>I have small code....
This is not a kernel problem. (Read your C book and/or ask in
a C newsgroup.)
>char ch[4];
>memset(ch,'\0',strlen(ch) );
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Floating Point Issue
2007-09-27 11:41 Floating Point Issue mahamuni ashish
2007-09-27 15:17 ` Jan Engelhardt
@ 2007-09-27 15:21 ` Xavier Bestel
2007-09-27 15:29 ` Al Viro
` (3 subsequent siblings)
5 siblings, 0 replies; 9+ messages in thread
From: Xavier Bestel @ 2007-09-27 15:21 UTC (permalink / raw)
To: mahamuni ashish; +Cc: linux-kernel
On Thu, 2007-09-27 at 12:41 +0100, mahamuni ashish wrote:
> int main()
> {
> float f= 1256.35;
> char ch[4];
>
> printf("\n1. f : %f",f);
> memset(ch,'\0',strlen(ch) );
Can't work. ch[]'s content is undefined, so strlen(ch) may read anywhere
in memory, and/or memset() write anywhere.
Xav
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Floating Point Issue
2007-09-27 11:41 Floating Point Issue mahamuni ashish
2007-09-27 15:17 ` Jan Engelhardt
2007-09-27 15:21 ` Xavier Bestel
@ 2007-09-27 15:29 ` Al Viro
2007-09-27 18:25 ` Trond Myklebust
` (2 subsequent siblings)
5 siblings, 0 replies; 9+ messages in thread
From: Al Viro @ 2007-09-27 15:29 UTC (permalink / raw)
To: mahamuni ashish; +Cc: linux-kernel
On Thu, Sep 27, 2007 at 12:41:41PM +0100, mahamuni ashish wrote:
> I have small code....
>
> #include <stdio.h>
> #include <string.h>
>
> int main()
> {
> float f= 1256.35;
> char ch[4];
>
> printf("\n1. f : %f",f);
> memset(ch,'\0',strlen(ch) );
strlen() applied to uninitialized array => undefined behaviour.
What does that have to do with the kernel, anyway?
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Floating Point Issue
2007-09-27 11:41 Floating Point Issue mahamuni ashish
` (2 preceding siblings ...)
2007-09-27 15:29 ` Al Viro
@ 2007-09-27 18:25 ` Trond Myklebust
2007-09-27 20:53 ` linux-os (Dick Johnson)
2007-09-28 8:31 ` Bernd Petrovitsch
5 siblings, 0 replies; 9+ messages in thread
From: Trond Myklebust @ 2007-09-27 18:25 UTC (permalink / raw)
To: mahamuni ashish; +Cc: linux-kernel
On Thu, 2007-09-27 at 12:41 +0100, mahamuni ashish wrote:
> I have small code....
>
> #include <stdio.h>
> #include <string.h>
>
> int main()
> {
> float f= 1256.35;
> char ch[4];
>
> printf("\n1. f : %f",f);
> memset(ch,'\0',strlen(ch) );
> printf("\n2. f : %f",f);
> return 0;
> }
>
> Expected output is
> 1. f : 1256.35
> 2. f : 1256.35
>
> But I am getting the output
> (on windows)
> 1. f : 1256.35
> 2. f : 0.000000
>
> (on Linux)
> 1. f : 1256.35
> segmentation fault
>
> why?
'cos 'strlen(ch)' isn't defined until you've initialised ch. If you swap
that line out with 'memset(ch, '\0', sizeof(ch))' then it will work.
Not a kernel bug, and hence not appropriate material for this list.
Trond
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Floating Point Issue
2007-09-27 11:41 Floating Point Issue mahamuni ashish
` (3 preceding siblings ...)
2007-09-27 18:25 ` Trond Myklebust
@ 2007-09-27 20:53 ` linux-os (Dick Johnson)
2007-09-27 21:01 ` Jan Engelhardt
2007-09-28 8:31 ` Bernd Petrovitsch
5 siblings, 1 reply; 9+ messages in thread
From: linux-os (Dick Johnson) @ 2007-09-27 20:53 UTC (permalink / raw)
To: mahamuni ashish; +Cc: Linux kernel
If Windows lets you get away with this, then Windows is broken.
memset(ch,'\0',strlen(ch) );
'ch' is uninitialized local data. Nobody knows what evil lurks...
Thay said, the kernel will make sure that any data that gets
put into your address-space doesn't contain anybody else's
information --that's all. The junk on your stack was created
by your task.
On Thu, 27 Sep 2007, mahamuni ashish wrote:
> I have small code....
>
> #include <stdio.h>
> #include <string.h>
>
> int main()
> {
> float f= 1256.35;
> char ch[4];
>
> printf("\n1. f : %f",f);
> memset(ch,'\0',strlen(ch) );
> printf("\n2. f : %f",f);
> return 0;
> }
>
> Expected output is
> 1. f : 1256.35
> 2. f : 1256.35
>
> But I am getting the output
> (on windows)
> 1. f : 1256.35
> 2. f : 0.000000
>
> (on Linux)
> 1. f : 1256.35
> segmentation fault
>
> why?
>
>
> Forgot the famous last words? Access your message archive online at http://in.messenger.yahoo.com/webmessengerpromo.php
>
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
>
Cheers,
Dick Johnson
Penguin : Linux version 2.6.22.1 on an i686 machine (5588.29 BogoMips).
My book : http://www.AbominableFirebug.com/
_
****************************************************************
The information transmitted in this message is confidential and may be privileged. Any review, retransmission, dissemination, or other use of this information by persons or entities other than the intended recipient is prohibited. If you are not the intended recipient, please notify Analogic Corporation immediately - by replying to this message or by sending an email to DeliveryErrors@analogic.com - and destroy all copies of this information, including any attachments, without reading or disclosing them.
Thank you.
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Floating Point Issue
2007-09-27 20:53 ` linux-os (Dick Johnson)
@ 2007-09-27 21:01 ` Jan Engelhardt
0 siblings, 0 replies; 9+ messages in thread
From: Jan Engelhardt @ 2007-09-27 21:01 UTC (permalink / raw)
To: linux-os (Dick Johnson); +Cc: mahamuni ashish, Linux kernel
On Sep 27 2007 16:53, linux-os (Dick Johnson) wrote:
>
>If Windows lets you get away with this, then Windows is broken.
>memset(ch,'\0',strlen(ch) );
No, probably just the chance that the memory to which ch points
had a nul in it or in the near bytes.
Use valgrind, move along.
>On Thu, 27 Sep 2007, mahamuni ashish wrote:
>
>> I have small code....
>>
>> #include <stdio.h>
>> #include <string.h>
>>
>> int main()
>> {
>> float f= 1256.35;
>> char ch[4];
>>
>> printf("\n1. f : %f",f);
>> memset(ch,'\0',strlen(ch) );
>> printf("\n2. f : %f",f);
>> return 0;
>> }
>>
>> Expected output is
>> 1. f : 1256.35
>> 2. f : 1256.35
>>
>> But I am getting the output
>> (on windows)
>> 1. f : 1256.35
>> 2. f : 0.000000
>>
>> (on Linux)
>> 1. f : 1256.35
>> segmentation fault
>>
>> why?
>>
>>
>> Forgot the famous last words? Access your message archive online at http://in.messenger.yahoo.com/webmessengerpromo.php
>>
>> -
>> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
>> the body of a message to majordomo@vger.kernel.org
>> More majordomo info at http://vger.kernel.org/majordomo-info.html
>> Please read the FAQ at http://www.tux.org/lkml/
>>
>
>Cheers,
>Dick Johnson
>Penguin : Linux version 2.6.22.1 on an i686 machine (5588.29 BogoMips).
>My book : http://www.AbominableFirebug.com/
>_
>
>
>****************************************************************
>The information transmitted in this message is confidential and may be privileged. Any review, retransmission, dissemination, or other use of this information by persons or entities other than the intended recipient is prohibited. If you are not the intended recipient, please notify Analogic Corporation immediately - by replying to this message or by sending an email to DeliveryErrors@analogic.com - and destroy all copies of this information, including any attachments, without reading or disclosing them.
>
>Thank you.
>-
>To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
>the body of a message to majordomo@vger.kernel.org
>More majordomo info at http://vger.kernel.org/majordomo-info.html
>Please read the FAQ at http://www.tux.org/lkml/
>
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Floating Point Issue
2007-09-27 15:17 ` Jan Engelhardt
@ 2007-09-28 2:32 ` WANG Cong
0 siblings, 0 replies; 9+ messages in thread
From: WANG Cong @ 2007-09-28 2:32 UTC (permalink / raw)
To: Jan Engelhardt; +Cc: mahamuni ashish, linux-kernel
On Thu, Sep 27, 2007 at 05:17:44PM +0200, Jan Engelhardt wrote:
>
>On Sep 27 2007 12:41, mahamuni ashish wrote:
>>I have small code....
>
>This is not a kernel problem. (Read your C book and/or ask in
>a C newsgroup.)
Please goto comp.lang.c for help. ;)
--
"Bill, look, we understand that you're interested in selling us this
operating system, but compare it to ours. We can't possibly take such
a retrograde step."
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Floating Point Issue
2007-09-27 11:41 Floating Point Issue mahamuni ashish
` (4 preceding siblings ...)
2007-09-27 20:53 ` linux-os (Dick Johnson)
@ 2007-09-28 8:31 ` Bernd Petrovitsch
5 siblings, 0 replies; 9+ messages in thread
From: Bernd Petrovitsch @ 2007-09-28 8:31 UTC (permalink / raw)
To: mahamuni ashish; +Cc: linux-kernel
On Don, 2007-09-27 at 12:41 +0100, mahamuni ashish wrote:
> I have small code....
And the relevance to the Linux kernel as such is?
[....]
Add "-Wall -Wextra" and fix all errors and warnings.
> Expected output is
No.
Bernd
--
Firmix Software GmbH http://www.firmix.at/
mobil: +43 664 4416156 fax: +43 1 7890849-55
Embedded Linux Development and Services
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2007-09-28 8:32 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-09-27 11:41 Floating Point Issue mahamuni ashish
2007-09-27 15:17 ` Jan Engelhardt
2007-09-28 2:32 ` WANG Cong
2007-09-27 15:21 ` Xavier Bestel
2007-09-27 15:29 ` Al Viro
2007-09-27 18:25 ` Trond Myklebust
2007-09-27 20:53 ` linux-os (Dick Johnson)
2007-09-27 21:01 ` Jan Engelhardt
2007-09-28 8:31 ` Bernd Petrovitsch
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox