C bug causes double fault

root at spdyne.UUCP root at spdyne.UUCP
Thu Mar 23 08:22:00 AEST 1989


# gwyn at smoke.BRL.MIL writes:  (Doug Gwyn)

# In article <27245 at cci632.UUCP> tvf at ccird7.UUCP (Tom Frauenhofer) writes:
# >On Microport V/AT, what he wrote causes a kernel panic.  That doesn't seem
# >to be reasonable behavior for an OS/library routine/whatever.
# 
# Of course nobody would call it "reasonable", but it's not too surprising.
# Incorrect user-mode code on a nonprotected multitasking system (forced by
# limitations of the PC/AT architecture) can easily crash the entire system.

    I Agree.

# To avoid problems in the original example, the C implementation would
# have to perform many detailed checks at run time, which would be considered
# prohibitively high overhead.

    Gee, it works under DOS's Turbo C... Maybe DOS is better protected :-) :-)

Seriously, all that one would have to do is to pass the floating/double args
on the stack like is done for Turbo C.  I presume that Uport is doing something
funky and passing them thru the Floating point processer??  If they passed
them on the stack, the above code would only print a screwy number.  (5 or 8
bytes passed, 2 used.)

    I wonder how they got the parm passing messed up so bad?  I can't see any
way that you could be able to pass mixed floats/ints/etc without doing it
on a stack, and then the code specified should work like a charm...(print
junk, but work).

# You'll undoubtedly get a flood of responses correctly pointing out
# that conversion of a double (promoted float) argument according to
# an int format is incorrect.  Use %g or some such format specifier.

	Could be, there are some stupid people who might not think that
he knew that...

# The reason I'm posting this is so I can include a plea not to post
# questions like this to comp.unix.wizards.  That's what
# comp.unix.questions is for.  UNIX-WIZARDS is for "wizardly"
# discussions (not that it gets very many, but that's what it's
# inteded for).  Thanks.

    I shouldn't dignify this with a response, but really Doug, don't you think
that *ANY* code (esp. a very short one) that can cause a double panic is
*Wizards* material????  I'm sure they guy saw what was wrong in his code!
Sheesh, some people try to make others look stupid and end up looking *very*
stupid themselves!  Go home and flame yourself!  What you say is that the
*only* reason that you posted, was to flame those people who have problems
and are unable to determine if it is a *Wizards* problem or an easy one.
Keep in mind that there are people out there who don't know as much as you
about UNIX [there must be one or two..:-)] and some of them can't determine
the nature of the problem.  Compiler? OS? My code?  In the above case it
was the OS.

    -Chert Pellett
     root at spdyne

PS: I tried to send Doug mail, but smoke was not a known node...



More information about the Comp.unix.microport mailing list