e3bd176532
Signed-off-by: Igor Gnatenko <ignatenko@redhat.com>
91 lines
4.1 KiB
Diff
91 lines
4.1 KiB
Diff
diff -uNr net-snmp-5.7.3.orig/agent/mibgroup/host/data_access/swinst_rpm.c net-snmp-5.7.3/agent/mibgroup/host/data_access/swinst_rpm.c
|
|
--- net-snmp-5.7.3.orig/agent/mibgroup/host/data_access/swinst_rpm.c 2014-12-08 21:23:22.000000000 +0100
|
|
+++ net-snmp-5.7.3/agent/mibgroup/host/data_access/swinst_rpm.c 2017-08-11 00:16:35.232470439 +0200
|
|
@@ -96,8 +96,7 @@
|
|
|
|
rpmdbMatchIterator mi;
|
|
Header h;
|
|
- char *n, *v, *r, *g;
|
|
- int32_t *t;
|
|
+ const char *n, *v, *r, *g;
|
|
time_t install_time;
|
|
size_t date_len;
|
|
int i = 1;
|
|
@@ -119,11 +118,11 @@
|
|
CONTAINER_INSERT(container, entry);
|
|
|
|
h = headerLink( h );
|
|
- 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);
|
|
@@ -133,7 +132,6 @@
|
|
? 2 /* operatingSystem */
|
|
: 4; /* application */
|
|
|
|
- install_time = *t;
|
|
dt = date_n_time( &install_time, &date_len );
|
|
if (date_len != 8 && date_len != 11) {
|
|
snmp_log(LOG_ERR, "Bogus length from date_n_time for %s", entry->swName);
|
|
diff -uNr net-snmp-5.7.3.orig/agent/mibgroup/host/hr_swinst.c net-snmp-5.7.3/agent/mibgroup/host/hr_swinst.c
|
|
--- net-snmp-5.7.3.orig/agent/mibgroup/host/hr_swinst.c 2014-12-08 21:23:22.000000000 +0100
|
|
+++ net-snmp-5.7.3/agent/mibgroup/host/hr_swinst.c 2017-08-11 00:17:07.488544492 +0200
|
|
@@ -484,9 +484,9 @@
|
|
}
|
|
#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 */
|
|
@@ -503,9 +503,8 @@
|
|
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);
|
|
@@ -665,7 +664,7 @@
|
|
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];
|
|
|
|
@@ -690,11 +689,9 @@
|
|
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;
|
|
}
|