Patch-ID# 106149-09 Keywords: dmispd DMI dmi Errata DMIList DmiString MIF dmi_cmd snmpXdmid security Synopsis: SEA 1.0.2: DMI Server provider Date: Nov/13/98 Solaris Release: 2.5.1 2.6 SunOS Release: 5.5.1 5.6 Unbundled Product: Solstice Enterprise Agent Unbundled Release: 1.0.2 Relevant Architectures: sparc Xref: See patch 106697-01 for SEA 1.0.2 Toolkit Xref: See patch 106037-06 for SEA 1.0.2 SNMP BugId's fixed with this patch: 4112330 4112151 4122365 4057779 4109484 4124743 4122388 4122883 4131240 4122717 4124474 4133979 4133977 4122382 4131233 4135743 4138579 4137149 4137131 4124478 4138989 4140515 4117042 4129647 4147917 4143218 4166235 4171108 Changes incorporated in this version: 4166235 4171108 Patches accumulated and obsoleted by this patch: Patches which conflict with this patch: Patches required with this patch: Obsoleted by: Files included with this patch: /usr/lib/dmi/dmispd /usr/lib/dmi/snmpXdmid /usr/lib/libdmi.so.1 /usr/lib/libdmici.so.1 /usr/lib/libdmimi.so.1 /usr/sbin/dmi_cmd /usr/sbin/dmiget Problem Description: 4166235 Files /var/dmi/db/1l.comp, /var/dmi/db/1l.tbl and /var/snmp/snmpdx.st are created 666 after install. 4171108 Unable to use more than 3 indexes in a table. (from 106149-08) 4117042 The output functions do not handle 64 bit integers correctly. 4138989 The service provider parser does not handle 64 bit values from MIFs. 4140515 If an attribute is a Global Enum type, the enum information is not being populated for that attribute 4147917 The mapper core dumps when the value fields in multiple row data structures are empty. 4143218 killing dmispd can corrupt sp.mif (from 106149-07) 4124478 SP ignores any CI registrations with attribute id = 0. When a registration is done with attribute id as zero then SP should register the instrumentation for all attributes in the group specified in groupId. But, SP ignores any registration with attribute id 0 and returns error code DMIERR_UNKNOWN_CI_REGISTRY when a 'get' is tried on attributes registered by specifying attributeId as zero during DmiRegisterCi(). 4138579 The DMI service layer does not handle subscription timeouts and adding of subscriptions properly. At times it sends multiple warnings, and also hangs when subscriptions which have already expired are added. 4137149 The defined type for DmiBoolean_t is not compatible with the DMI 2.0 specification. The DMI specfication designates that a DmiBoolean_t should be of type 'boolean' which is defined as being 8 bits (Section 5.1) . However, in /usr/include/dmi/common.h, DmiBoolean_t is defined as: typedef u_long DmiBoolean_t; 4137131 The Solaris-defined DMI error codes listed in /usr/include/dmi/dmi_error.hh are incompatible with the DMI 2.0 specification. For instance, the error DMIERR_COMPONENT_NOT_FOUND is defined by the spec to be 0x00102. In Solaris, it is 6. This makes it impossible to remotely connect to a Solaris server from any other DMI 2.0 compliant operating system and report meaningful errors. The defined error codes are listed in Appendix A of the 2.0 specification. (from 106149-06) 4135743 The Service Provider core dumps for a DmiGetMultiple in the following sequence: DmiGetMultiple with one of the rows pointing to invalid component. DmiGetMultiple with all rows pointing to valid components. (from 106149-05) 4133979 DmiListGroups should not return groups with IDs of 0 to the caller. They should be kept internally and not be made visible to DMI users. 4133977 Tables are not returned in certain calls to DmiListGroups 4122382 In any MIF file that has a table defined, all get or set commands are routed to the MIF database rather than the CI, even though the CI has successfully registered. 4131233 snmpwalk can hang when SnmpXdmid is running (from 106149-04) 4131240 DmiGetMultiple incorrectly returns the keyList 4124474 DmiSetAttribute API returns wrong error status (from 106149-03) 4122388 DmiString lengths not maintained in correct DMI 2.0 manner The Solaris DMI implementation does not conform to the DMI 2.0 specification with respect to DmiString types. The DMI specification calls for DmiStrings to be NULL terminated and their associated length to include this terminator as part of the count. 4122883 If 'Key' statement is not specified for a scalar group (non-table groups), for which the Key statement is optional according to DMI Specifications 2.0, then instrumentation call back functions are not invoked on 'get' and 'set' commands. Instead, the SP gets the values from the MIF database. The work-around for this problem is to put the 'Key' statement for scalar groups also. 4124743 In API calls DmiListComponents and DmiListComponentsByClass, with the request mode as DMI_UNIQUE, if there is no component with the requested component Id, the API call is returning the first component with the component Id following that of the requested one.If no such component exists then only the SP gives error. (from 106149-02) 4122365 The maxSize returned by the API DmiListAttributes() is "0" for MIF_INTEGER, MIF_COUNTER, MIF_DATE, MIF_INTEGER64, MIF_COUNTER64 and MIF_OCTETSTRING data types.It should have been 4,4,28,8 and 8 respectively for MIF_INTEGER, MIF_COUNTER,MIF_DATE,MIF_INTEGER64 and MIF_COUNTER64. 4057779 DMI DB's parse() function fails on the Standard Systems Group MIF 4109484 For certain MIFs, 'dmiget' will report different results depending on how the groups are numbered within the component. 4122717 Calling DmiListGroups (tested against the DMI_FIRST, DMI_UNIQUE, and DMI_NEXT request modes) returns inconsistent results. (from 106149-01) 4112330 DMI service provider spins out of control consuming 100 % of idle CPU when servicing a longer service request 4112151 DMI 2.0 Errata not implemented The function dmioriginateevent() transfers the DmiRowData_t format to a DmiMultiRowData_t format for a mgt_dmideliverevent() call. This code will no longer be necessary. Note: The DMI Errata 2.0 bug fix incorporates the DMI Errata section 2.7. The DmiOriginateEvent function now has DmiMultiRowData_t* as the fourth parameter instead of DmiRowData_t*. All component instrumentations which originate events using the old signature must now be rewritten and recompiled to use this new signature. Otherwise, the DmiOriginate event would not work correctly and the component instrumentations may encounter a segmentation violation. (from 106335-01) 4129647 Compilation with the SEA libraries generate memory init errors from purify Patch Installation Instructions: -------------------------------- Refer to the Install.info file for instructions on using the generic 'installpatch' and 'backoutpatch' scripts provided with each patch. Any other special or non-generic installation instructions should be described below as special instructions. Special Install Instructions: ----------------------------- If you use SEA Toolkit, you need to install SEA Toolkit patch (106697-01) To upgrade to SEA 1.0.3, see SEA Webpage http://www.sun.com/solstice/products/ent.agents