>although I feel the
>array out of bounds is probably always a bad thing to do.

I agree, but as you said, there is no junk in the result. However I think it 
should be fixed.

>>> > Also, I believe the output of the above example is semantically
> > incorrect.  
I personally agree but I'm afraid our users are used to this reversed notation.

François Isabelle
 
> -----Message d'origine-----
> De : Al Chu [mailto:ch...@llnl.gov]
> Envoyé : 25 novembre 2009 10:44
> À : ipmitool-devel@lists.sourceforge.net
> Objet : Re: [Ipmitool-devel] ipmitool sensor bug(s)
> 
> Thinking about this for another 10 seconds, I suppose if the ipmi
> response (rsp var) were cleared properly in each ipmitool interface
> (lan, open, etc.), then this problem might go away, although I feel the
> array out of bounds is probably always a bad thing to do. (note the
> array out of bounds is not going off the array of allocated memory, but
> rather going passed the "max index" of data read.)
> 
> Al
> 
> On Tue, 2009-11-24 at 10:54 -0800, Al Chu wrote:
> > I was trying to figure out why some output in FreeIPMI was different
> > than in ipmitool, then I figured it out.  In lib/ipmi_sensor.c in
> > several locations after a sensor reading, there is code like this:
> >
> > printf("| 0x%-8x | %-10s | 0x%02x%02x",
> >        val,
> >        unitstr, rsp->data[2], rsp->data[3]);
> >
> > Most notably, the code is reading data[2] and data[3] from the response,
> > which maps to state offsets 0-7 and 8-14 of discrete sensors.
> >
> > In the IPMI spec (35.14), only states 0-7 (byte data[2]) are required to
> > be returned, states 8-14 (byte data[3]) are optional.  So if you have a
> > sensor that is returning only the first set of offsets, you have an
> > array out of bounds and the output is returning whatever junk is out
> > there.  I've also found some sensors that don't return either byte
> > (which is a compliance issue, but nevertheless), perhaps that should be
> > handled as well.  This probably requires a reasonable amount of
> > re-coding, so I'll leave it to someone who is more familiar and a bigger
> > maintainer of the code.
> >
> > Also, I believe the output of the above example is semantically
> > incorrect.  data[2] represents state offsets 0-7 and data[3] represents
> > state offsets 8-14.  So semantically, shouldn't the output be:
> >
> > printf("0x%02x%02x", rsp->data[3], rsp->data[2]);
> >
> > In other words, is the "endian" of the output backwards?  [1] It's
> > possible that the original output wanted to output event bitmasks 0-14
> > in order left to right, but it's actually outputting
> > "7-0,reserved(ie. bit 15),14-8".
> >
> > Al
> >
> > [1] - "endian" isn't the right word, but hopefully you get what I'm
> > trying to say :-)
> >
> --
> Albert Chu
> ch...@llnl.gov
> Computer Scientist
> High Performance Systems Division
> Lawrence Livermore National Laboratory
> 
> 
> ------------------------------------------------------------------------------
> Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
> trial. Simplify your report design, integration and deployment - and focus on
> what you do best, core application coding. Discover what's new with
> Crystal Reports now.  http://p.sf.net/sfu/bobj-july
> _______________________________________________
> Ipmitool-devel mailing list
> Ipmitool-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/ipmitool-devel

------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
Ipmitool-devel mailing list
Ipmitool-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ipmitool-devel

Reply via email to