Patch #2 to Pcomm v1.1
Mike Khaw
mkhaw at teknowledge-vaxc.ARPA
Thu Sep 22 03:53:44 AEST 1988
In article <7782 at bcsaic.UUCP> paula at bcsaic.UUCP (Paul Allen) writes:
>>
>>>! if (*lock_path != NULL && lock_path != NULL) {
>>
>>This only tests whether lock_path is legal *after* trying to use it!
>
> I've now seen a couple postings about this bug, but nobody has got it
> right yet! What has been missed is that C makes no guarantee about the <--
> order of expression evaluation. The only safe way to perform this test <--
> is using two nested if statements. <--
from page 19 of K&R (1978 ed.)
Expressions connected by && or || are evaluated
left to right
^^^^^^^^^^^^^
furthermore, "!=" has higher precedence than "&&" so
if (lock_path != NULL && *lock_path != NULL)
is correct.
Mike Khaw
--
internet: mkhaw at teknowledge.arpa
uucp: {uunet|sun|ucbvax|decwrl|uw-beaver}!mkhaw%teknowledge.arpa
hardcopy: Teknowledge Inc, 1850 Embarcadero Rd, POB 10119, Palo Alto, CA 94303
More information about the Comp.sources.bugs
mailing list