Re: Linux "NULL pointer dereferece" in the News...

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



(Sorry about hashing the threading.)
Tom Horsley commented,
On Sun, 19 Jul 2009 11:49:42 -0700
Michael Eager wrote,

> OK, write a description of how to determine one case from the
> other and I'm sure every compiler developer will rush to implement it.

The fact that they already have a -fno-delete-null-pointer-checks option
in the compiler seems to demonstrate that they know they are doing
this specifically because it is undefined and they can do whatever
they want (including checking a compiler option to choose a different
thing to do). I guess thinking that the best choice is always
to do what the source code says makes me a member of a looney
minority though :-).


Well, the -fno-delete-null-pointer-checks option was intended for a related, but different class of problems, specifically certain application areas where it is defined to access NULL pointers. (The standard does not define the behavior, but it isn't really against the standard for a specific application field to define the behavior. The code becomes non-standard C, however.)

(Specifically, embedded applications, although I tend to wonder if the hardware design could not usually get around the reasons for putting valid stuff in the bottom of memory. Actually, I'm beginning to wonder, what with modern logical address spaces usually significantly larger than applications need, whether it doesn't make sense to devote address bits to the problems of classifying pointers.)

The C standard does not specify that every function returning a pointer return invalid pointers. Moreover, it does not specify how to determine a valid pointer, even though we customarily assume the NULL pointer idiom.

I don't disagree that it feels awkward that they know the pointer has been referenced and therefore would seem to be valid, thus, non-NULL, but aren't able to back up the parse stack and see that the access looks like a test-after-use bug.

Also, we humans walk back up parse stacks with relative ease, but it slows compilers down to be walking back up the parse stack with assumed valid code. I'm talking, worst case could be slow enough to be completely unusable.


--
fedora-list mailing list
fedora-list@xxxxxxxxxx
To unsubscribe: https://www.redhat.com/mailman/listinfo/fedora-list
Guidelines: http://fedoraproject.org/wiki/Communicate/MailingListGuidelines
[Index of Archives]     [Older Fedora Users]     [Fedora Announce]     [Fedora Package Announce]     [EPEL Announce]     [Fedora Magazine]     [Fedora News]     [Fedora Summer Coding]     [Fedora Laptop]     [Fedora Cloud]     [Fedora Advisory Board]     [Fedora Education]     [Fedora Security]     [Fedora Scitech]     [Fedora Robotics]     [Fedora Maintainers]     [Fedora Infrastructure]     [Fedora Websites]     [Anaconda Devel]     [Fedora Devel Java]     [Fedora Legacy]     [Fedora Desktop]     [Fedora Fonts]     [ATA RAID]     [Fedora Marketing]     [Fedora Management Tools]     [Fedora Mentors]     [SSH]     [Fedora Package Review]     [Fedora R Devel]     [Fedora PHP Devel]     [Kickstart]     [Fedora Music]     [Fedora Packaging]     [Centos]     [Fedora SELinux]     [Fedora Legal]     [Fedora Kernel]     [Fedora OCaml]     [Coolkey]     [Virtualization Tools]     [ET Management Tools]     [Yum Users]     [Tux]     [Yosemite News]     [Gnome Users]     [KDE Users]     [Fedora Art]     [Fedora Docs]     [Asterisk PBX]     [Fedora Sparc]     [Fedora Universal Network Connector]     [Libvirt Users]     [Fedora ARM]

  Powered by Linux