On Tue, Jul 23, 2013 at 10:52 PM, Jeffrey Bastian <jbast...@redhat.com> wrote: > On Fri, Jul 19, 2013 at 03:30:31PM -0500, Jeffrey Bastian wrote: >> I was just reviewing the get_lan_param_select() code in lib/ipmi_lanp.c >> and I think I found a bug: >> >> for (i = 0; ipmi_lan_params[i].cmd != (-1); i++) { >> if (ipmi_lan_params[i].cmd == param) { >> p = &ipmi_lan_params[param]; >> break; >> } >> } >> >> The 3rd line should use i for the array index, not param: >> - p = &ipmi_lan_params[param]; >> + p = &ipmi_lan_params[i]; >> >> The param value matches the cmd in the lan_param struct, but it's not >> the same as the ipmi_lan_params[] array index. > > > Here is an example of what I mean. This problem becomes apparent with > the OEM extensions which use values 192+. > > Setting a breakpoint on the get_lan_param_select() function: > $ gdb ./ipmitool > (gdb) b get_lan_param_select > (gdb) run -H hostname -U user -P password lan print 1 > (gdb) p ipmi_lan_params[28] > $1 = {cmd = 193, size = 4, > desc = "TFTP Server IP\000\000\000\000\000\000\000\000\000", data = 0x0, > data_len = 0} > (gdb) p sizeof(ipmi_lan_params) / sizeof(*ipmi_lan_params) > $2 = 40 > > As you can see, entry 28 in the array has cmd value of 193. > > So, if ipmi_lan_params[i].cmd == param == 193 then > p = &ipmi_lan_params[param]; > becomes > p = &ipmi_lan_params[193]; > which is a bug because the array only has 40 entries. > > Thus, the line should be > p = &ipmi_lan_params[i]; > > Jeff >
Now, that's a different. Please, open a bug ticket(?). Thanks, Z. ------------------------------------------------------------------------------ See everything from the browser to the database with AppDynamics Get end-to-end visibility with application monitoring from AppDynamics Isolate bottlenecks and diagnose root cause in seconds. Start your free trial of AppDynamics Pro today! http://pubads.g.doubleclick.net/gampad/clk?id=48808831&iu=/4140/ostg.clktrk _______________________________________________ Ipmitool-devel mailing list Ipmitool-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/ipmitool-devel