[torquedev] pbm_mom segfault in TMomCheckJobChild

Garrick Staples garrick at usc.edu
Wed Dec 17 16:01:32 MST 2008


On Wed, Dec 17, 2008 at 02:41:23PM -0800, Joshua Bernstein alleged:
> 
> 
> Garrick Staples wrote:
> >On Tue, Dec 16, 2008 at 07:18:24PM -0500, Glen Beane alleged:
> >>On Tue, Dec 16, 2008 at 7:17 PM, Glen Beane <glen.beane at gmail.com> wrote:
> >>>On Tue, Dec 16, 2008 at 3:06 PM, Joshua Bernstein
> >>><jbernstein at penguincomputing.com> wrote:
> >>>
> >>>>if (i == -1)
> >>>>       if (errno == EINTR)
> >>>>          continue;
> >>>>
> >>>>The ordering is important.  Otherwise the compiler sees if (a && b)
> >>>>and is allowed to look at 'b' first to handle short-circuit evaluation.
> >>>I would NEVER use such a brain dead compiler.  Compound Boolean
> >>>expressions are evaluated left to right.
> >>>if (ptr == NULL && ptr->foo == bar) is never going to access a null
> >>>pointer because a correct compiler is never going to do the ptr->foo
> >>>== bar test first.
> >>i mean if (ptr != NULL && ptr->foo == bar)
> >
> >According to the C faq (a reference that I deeply trust), these constructs 
> >are
> >perfectly legal.  The || and && operators (and the ?: and comma operators)
> >create sequence points between the operands and gaurantee the order of
> >evalution.
> >
> >http://c-faq.com/expr/seqpointops.html
> >http://c-faq.com/expr/shortcircuit.html
> >http://c-faq.com/expr/seqpoints.html
> 
> Ah well. I stand corrected about the ordering issue. Though the fact 
> later on that errno is assigned even if the read() call didn't fail 
> still remains.

But nothing ever reads RC.  While I agree that it is sloppy to assign a
possibly bogus value, I don't see an actual bug anywhere.  It's not a pointer
that gets followed to a bogus memory address to segfault or bus error.  It's
just an int that is never acted upon.  RC is never read once assigned the
(possibly) bogus value in errno, right?

I hate to beat the point, but it seems you are looking for 2 real bugs and I'd
hate for you to stop looking at this point :)

-- 
Garrick Staples, GNU/Linux HPCC SysAdmin
University of Southern California

See the Dishonor Roll at http://www.californiansagainsthate.com/

-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
Url : http://www.supercluster.org/pipermail/torquedev/attachments/20081217/bde3d541/attachment.bin


More information about the torquedev mailing list