diff -Nurp net-snmp-5.8-orig/agent/mibgroup/host/data_access/swinst_rpm.c net-snmp-5.8/agent/mibgroup/host/data_access/swinst_rpm.c --- net-snmp-5.8-orig/agent/mibgroup/host/data_access/swinst_rpm.c 2018-10-10 09:45:14.907075076 +0000 +++ net-snmp-5.8/agent/mibgroup/host/data_access/swinst_rpm.c 2018-10-10 19:31:51.161967195 +0000 @@ -101,8 +101,7 @@ netsnmp_swinst_arch_load( netsnmp_contai const char *g; rpmtd td_name, td_version, td_release, td_group, td_time; #else - char *n, *v, *r, *g; - int32_t *t; + const char *n, *v, *r, *g; #endif time_t install_time; size_t date_len; @@ -146,14 +145,14 @@ netsnmp_swinst_arch_load( netsnmp_contai install_time = rpmtdGetNumber(td_time); g = rpmtdGetString(td_group); #else - headerGetEntry( h, RPMTAG_NAME, NULL, (void**)&n, NULL); - headerGetEntry( h, RPMTAG_VERSION, NULL, (void**)&v, NULL); - headerGetEntry( h, RPMTAG_RELEASE, NULL, (void**)&r, NULL); - headerGetEntry( h, RPMTAG_GROUP, NULL, (void**)&g, NULL); - headerGetEntry( h, RPMTAG_INSTALLTIME, NULL, (void**)&t, NULL); + n = headerGetString( h, RPMTAG_NAME); + v = headerGetString( h, RPMTAG_VERSION); + r = headerGetString( h, RPMTAG_RELEASE); + g = headerGetString( h, RPMTAG_GROUP); + install_time = headerGetNumber( h, RPMTAG_INSTALLTIME); + entry->swName_len = snprintf( entry->swName, sizeof(entry->swName), "%s-%s-%s", n, v, r); - install_time = *t; #endif entry->swType = (g && NULL != strstr( g, "System Environment")) ? 2 /* operatingSystem */ diff -Nurp net-snmp-5.8-orig/agent/mibgroup/host/hr_swinst.c net-snmp-5.8/agent/mibgroup/host/hr_swinst.c --- net-snmp-5.8-orig/agent/mibgroup/host/hr_swinst.c 2018-10-10 09:45:14.907075076 +0000 +++ net-snmp-5.8/agent/mibgroup/host/hr_swinst.c 2018-10-10 19:34:48.935596621 +0000 @@ -479,9 +479,9 @@ var_hrswinst(struct variable * vp, } #else # ifdef HAVE_LIBRPM - char *rpm_groups; - if ( headerGetEntry(swi->swi_h, RPMTAG_GROUP, NULL, (void **) &rpm_groups, NULL) ) { - if ( strstr(rpm_groups, "System Environment") != NULL ) + const char *rpm_group = headerGetString(swi->swi_h, RPMTAG_GROUP); + if ( NULL != rpm_group ) { + if ( strstr(rpm_group, "System Environment") != NULL ) long_return = 2; /* operatingSystem */ else long_return = 4; /* applcation */ @@ -498,9 +498,8 @@ var_hrswinst(struct variable * vp, case HRSWINST_DATE: { #ifdef HAVE_LIBRPM - int32_t *rpm_data; - if ( headerGetEntry(swi->swi_h, RPMTAG_INSTALLTIME, NULL, (void **) &rpm_data, NULL) ) { - time_t installTime = *rpm_data; + time_t installTime = headerGetNumber(swi->swi_h, RPMTAG_INSTALLTIME); + if ( 0 != installTime) { ret = date_n_time(&installTime, var_len); } else { ret = date_n_time(NULL, var_len); @@ -660,7 +659,7 @@ Save_HR_SW_info(int ix) if (1 <= ix && ix <= swi->swi_nrec && ix != swi->swi_prevx) { int offset; Header h; - char *n, *v, *r; + const char *n, *v, *r; offset = swi->swi_recs[ix - 1]; @@ -685,11 +684,9 @@ Save_HR_SW_info(int ix) swi->swi_h = h; swi->swi_prevx = ix; - headerGetEntry(swi->swi_h, RPMTAG_NAME, NULL, (void **) &n, NULL); - headerGetEntry(swi->swi_h, RPMTAG_VERSION, NULL, (void **) &v, - NULL); - headerGetEntry(swi->swi_h, RPMTAG_RELEASE, NULL, (void **) &r, - NULL); + n = headerGetString(swi->swi_h, RPMTAG_NAME); + v = headerGetString(swi->swi_h, RPMTAG_VERSION); + r = headerGetString(swi->swi_h, RPMTAG_RELEASE); snprintf(swi->swi_name, sizeof(swi->swi_name), "%s-%s-%s", n, v, r); swi->swi_name[ sizeof(swi->swi_name)-1 ] = 0; }