--- ipmitool-1.8.12/src/ipmishell.c.orig 2006-07-15 00:36:50.000000000 +0200 +++ ipmitool-1.8.12/src/ipmishell.c 2013-03-08 14:03:35.000000000 +0100 @@ -270,6 +270,20 @@ int ipmi_set_main(struct ipmi_intf * int return -1; } + /* Some commands below require a session struct. + Not all interfaces allocate one. Maybe get a dummy + structure to avoid a crash on bogus usage. + This is a hack. This code structure needs to be cleaned up! + */ + if (intf->session == 0) { + intf->session = malloc(sizeof(struct ipmi_session)); + if (intf->session) { + memset(intf->session, 0, sizeof(struct ipmi_session)); + } else { + printf("Warning: failed to allocate dummy session\n"); + } + } + if (strncmp(argv[0], "host", 4) == 0 || strncmp(argv[0], "hostname", 8) == 0) { ipmi_intf_session_set_hostname(intf, argv[1]);