[PATCH 4/9] snmplib, MIBs, Python: Fix gcc 8 warnings

Bart Van Assche <[email protected]>
Newsgroups gmane.network.net-snmp.devel
Message-ID <[email protected]>
Avoid that gcc 8 complains about incompatible function casts. This
patch does not change any functionality.
---
 .../if-mib/ifXTable/ifXTable_interface.c      | 21 +++++++--------
 .../snmpNotifyFilterTable_interface.c         | 26 ++++++++-----------
 .../udp-mib/data_access/udp_endpoint_common.c |  9 ++++---
 python/netsnmp/client_intf.c                  |  2 +-
 snmplib/cert_util.c                           | 17 ++++++------
 snmplib/container_iterator.c                  | 11 +++++---
 6 files changed, 43 insertions(+), 43 deletions(-)

diff --git a/agent/mibgroup/if-mib/ifXTable/ifXTable_interface.c b/agent/mibgroup/if-mib/ifXTable/ifXTable_interface.c
index e561842ee77a..54163b05936d 100644
--- a/agent/mibgroup/if-mib/ifXTable/ifXTable_interface.c
+++ b/agent/mibgroup/if-mib/ifXTable/ifXTable_interface.c
@@ -1799,8 +1799,7 @@ static int      _ifXTable_container_save_rows(int majorID, int minorID,
                                               void *clientarg);
 static void     _ifXTable_container_row_restore(const char *token,
                                                 char *buf);
-static int      _ifXTable_container_row_save(ifXTable_rowreq_ctx *
-                                             rowreq_ctx, void *type);
+static void     _ifXTable_container_row_save(void *data, void *type);
 static char    *_ifXTable_container_col_restore(ifXTable_rowreq_ctx *
                                                 rowreq_ctx, u_int col,
                                                 char *buf);
@@ -1856,7 +1855,6 @@ _ifXTable_container_save_rows(int majorID, int minorID, void *serverarg,
      * save all rows
      */
     CONTAINER_FOR_EACH(*(netsnmp_container **)clientarg,
-                       (netsnmp_container_obj_func *)
                        _ifXTable_container_row_save, type);
 
     read_config_store((char *) type, sep);
@@ -1873,9 +1871,10 @@ _ifXTable_container_save_rows(int majorID, int minorID, void *serverarg,
 /************************************************************
  * _ifXTable_container_row_save
  */
-static int
-_ifXTable_container_row_save(ifXTable_rowreq_ctx * rowreq_ctx, void *type)
+static void _ifXTable_container_row_save(void *data, void *type)
 {
+    ifXTable_rowreq_ctx *rowreq_ctx = data;
+
     /*
      * Allocate space for a line with all data for a row. An
      * attempt is made to come up with a default maximum size, but
@@ -1918,7 +1917,7 @@ _ifXTable_container_row_save(ifXTable_rowreq_ctx * rowreq_ctx, void *type)
     int             i;
 
     if (ifXTable_container_should_save(rowreq_ctx) == 0) {
-        return SNMP_ERR_NOERROR;
+        return;
     }
 
     /*
@@ -1930,13 +1929,13 @@ _ifXTable_container_row_save(ifXTable_rowreq_ctx * rowreq_ctx, void *type)
     if (NULL == pos) {
         snmp_log(LOG_ERR, "error saving ifXTable row "
                  "to persistent file\n");
-        return SNMP_ERR_GENERR;
+        return;
     }
     *pos++ = ' ';
     if (pos > max) {
         snmp_log(LOG_ERR, "error saving ifXTable row "
                  "to persistent file (too long)\n");
-        return SNMP_ERR_GENERR;
+        return;
     }
 
     /*
@@ -1956,7 +1955,7 @@ _ifXTable_container_row_save(ifXTable_rowreq_ctx * rowreq_ctx, void *type)
         if (pos > max) {
             snmp_log(LOG_ERR, "error saving ifXTable row "
                      "to persistent file (too long)\n");
-            return SNMP_ERR_GENERR;
+            return;
         }
     }
 
@@ -1972,14 +1971,12 @@ _ifXTable_container_row_save(ifXTable_rowreq_ctx * rowreq_ctx, void *type)
     if (pos > max) {
         snmp_log(LOG_ERR, "error saving ifXTable row "
                  "to persistent file (too long)\n");
-        return SNMP_ERR_GENERR;
+        return;
     }
     read_config_store((char *) type, buf);
 
     DEBUGMSGTL(("internal:ifXTable:_ifXTable_container_row_save",
                 "saving line '%s'\n", buf));
-
-    return SNMP_ERR_NOERROR;
 }
 
 static void
diff --git a/agent/mibgroup/snmp-notification-mib/snmpNotifyFilterTable/snmpNotifyFilterTable_interface.c b/agent/mibgroup/snmp-notification-mib/snmpNotifyFilterTable/snmpNotifyFilterTable_interface.c
index 81cb544fa790..88caf910e3db 100644
--- a/agent/mibgroup/snmp-notification-mib/snmpNotifyFilterTable/snmpNotifyFilterTable_interface.c
+++ b/agent/mibgroup/snmp-notification-mib/snmpNotifyFilterTable/snmpNotifyFilterTable_interface.c
@@ -1956,9 +1956,7 @@ static int      _snmpNotifyFilterTable_container_save_rows(int majorID,
 static void     _snmpNotifyFilterTable_container_row_restore(const char
                                                              *token,
                                                              char *buf);
-static int
-                _snmpNotifyFilterTable_container_row_save(snmpNotifyFilterTable_rowreq_ctx
-                                                          * rowreq_ctx,
+static void     _snmpNotifyFilterTable_container_row_save(void *data,
                                                           void *type);
 static char
  
@@ -2051,8 +2049,7 @@ _snmpNotifyFilterTable_container_save_rows(int majorID, int minorID,
     /*
      * save all rows
      */
-    CONTAINER_FOR_EACH(c, (netsnmp_container_obj_func *)
-                       _snmpNotifyFilterTable_container_row_save, type);
+    CONTAINER_FOR_EACH(c, _snmpNotifyFilterTable_container_row_save, type);
 
     read_config_store((char *) type, sep);
     read_config_store((char *) type, "\n");
@@ -2068,10 +2065,11 @@ _snmpNotifyFilterTable_container_save_rows(int majorID, int minorID,
 /************************************************************
  * _snmpNotifyFilterTable_container_row_save
  */
-static int
-_snmpNotifyFilterTable_container_row_save(snmpNotifyFilterTable_rowreq_ctx
-                                          * rowreq_ctx, void *type)
+static void
+_snmpNotifyFilterTable_container_row_save(void *data, void *type)
 {
+    snmpNotifyFilterTable_rowreq_ctx *rowreq_ctx = data;
+
     /*
      * Allocate space for a line with all data for a row. An
      * attempt is made to come up with a default maximum size, but
@@ -2117,7 +2115,7 @@ _snmpNotifyFilterTable_container_row_save(snmpNotifyFilterTable_rowreq_ctx
     int             i;
 
     if (snmpNotifyFilterTable_container_should_save(rowreq_ctx) == 0) {
-        return SNMP_ERR_NOERROR;
+        return;
     }
 
     /*
@@ -2129,13 +2127,13 @@ _snmpNotifyFilterTable_container_row_save(snmpNotifyFilterTable_rowreq_ctx
     if (NULL == pos) {
         snmp_log(LOG_ERR, "error saving snmpNotifyFilterTable row "
                  "to persistent file\n");
-        return SNMP_ERR_GENERR;
+        return;
     }
     *pos++ = ' ';
     if (pos > max) {
         snmp_log(LOG_ERR, "error saving snmpNotifyFilterTable row "
                  "to persistent file (too long)\n");
-        return SNMP_ERR_GENERR;
+        return;
     }
 
     /*
@@ -2157,7 +2155,7 @@ _snmpNotifyFilterTable_container_row_save(snmpNotifyFilterTable_rowreq_ctx
         if (pos > max) {
             snmp_log(LOG_ERR, "error saving snmpNotifyFilterTable row "
                      "to persistent file (too long)\n");
-            return SNMP_ERR_GENERR;
+            return;
         }
     }
 
@@ -2173,13 +2171,11 @@ _snmpNotifyFilterTable_container_row_save(snmpNotifyFilterTable_rowreq_ctx
     if (pos > max) {
         snmp_log(LOG_ERR, "error saving snmpNotifyFilterTable row "
                  "to persistent file (too long)\n");
-        return SNMP_ERR_GENERR;
+        return;
     }
     read_config_store((char *) type, buf);
 
     DEBUGMSGTL(("internal:snmpNotifyFilterTable:_snmpNotifyFilterTable_container_row_save", "saving line '%s'\n", buf));
-
-    return SNMP_ERR_NOERROR;
 }
 
 static void
diff --git a/agent/mibgroup/udp-mib/data_access/udp_endpoint_common.c b/agent/mibgroup/udp-mib/data_access/udp_endpoint_common.c
index 63f85494f64e..a97f3da02dda 100644
--- a/agent/mibgroup/udp-mib/data_access/udp_endpoint_common.c
+++ b/agent/mibgroup/udp-mib/data_access/udp_endpoint_common.c
@@ -88,6 +88,11 @@ netsnmp_access_udp_endpoint_container_load(netsnmp_container* container,
     return container;
 }
 
+static void _netsnmp_access_udp_endpoint_entry_free(void *data, void *context)
+{
+    netsnmp_access_udp_endpoint_entry_free(data);
+}
+
 void
 netsnmp_access_udp_endpoint_container_free(netsnmp_container *container,
                                            u_int free_flags)
@@ -104,9 +109,7 @@ netsnmp_access_udp_endpoint_container_free(netsnmp_container *container,
         /*
          * free all items.
          */
-        CONTAINER_CLEAR(container,
-                        (netsnmp_container_obj_func*)
-                        netsnmp_access_udp_endpoint_entry_free,
+        CONTAINER_CLEAR(container, _netsnmp_access_udp_endpoint_entry_free,
                         NULL);
     }
 
diff --git a/python/netsnmp/client_intf.c b/python/netsnmp/client_intf.c
index db3180b888db..5a131808c641 100644
--- a/python/netsnmp/client_intf.c
+++ b/python/netsnmp/client_intf.c
@@ -2331,7 +2331,7 @@ netsnmp_set(PyObject *self, PyObject *args)
 #ifndef NETSNMP_NO_WRITE_SUPPORT
   PyObject *session;
   PyObject *varlist;
-  PyObject *varbind;
+  PyObject *varbind = NULL;
   netsnmp_session *ss;
   netsnmp_pdu *pdu, *response;
   struct tree *tp;
diff --git a/snmplib/cert_util.c b/snmplib/cert_util.c
index ad79e37f5a56..0f0b7e4271ec 100644
--- a/snmplib/cert_util.c
+++ b/snmplib/cert_util.c
@@ -148,7 +148,7 @@ void netsnmp_key_free(netsnmp_key *key);
 
 static int _certindex_add( const char *dirname, int i );
 
-static int _time_filter(netsnmp_file *f, struct stat *idx);
+static int _time_filter(const void *text, void *ctx);
 
 static void _init_tlstmCertToTSN(void);
 #define TRUSTCERT_CONFIG_TOKEN "trustCert"
@@ -704,9 +704,9 @@ _type_from_filename(const char *filename)
 /*
  * filter functions; return 1 to include file, 0 to exclude
  */
-static int
-_cert_cert_filter(const char *filename)
+static int _cert_cert_filter(const void *text, void *ctx)
 {
+    const char *filename = text;
     int  len = strlen(filename);
     const char *pos;
 
@@ -1383,8 +1383,7 @@ _cert_read_index(const char *dirname, struct stat *dirstat)
      */
     newer =
         netsnmp_directory_container_read_some(NULL, dirname,
-                                              (netsnmp_directory_filter*)
-                                              _time_filter,(void*)&idx_stat,
+                                              _time_filter, &idx_stat,
                                               NETSNMP_DIR_NSFILE |
                                               NETSNMP_DIR_NSFILE_STATS);
     if (newer) {
@@ -1546,8 +1545,7 @@ _add_certdir(const char *dirname)
      */
     cert_container =
         netsnmp_directory_container_read_some(NULL, dirname,
-                                              (netsnmp_directory_filter*)
-                                              &_cert_cert_filter, NULL,
+                                              _cert_cert_filter, NULL,
                                               NETSNMP_DIR_RELATIVE_PATH |
                                               NETSNMP_DIR_EMPTY_OK );
     if (NULL == cert_container) {
@@ -2396,8 +2394,11 @@ _key_find_fn(const char *filename)
 #endif
 
 static int
-_time_filter(netsnmp_file *f, struct stat *idx)
+_time_filter(const void *text, void *ctx)
 {
+    const netsnmp_file *f = text;
+    struct stat *idx = ctx;
+
     /** include if mtime or ctime newer than index mtime */
     if (f && idx && f->stats &&
         ((f->stats->st_mtime >= idx->st_mtime) ||
diff --git a/snmplib/container_iterator.c b/snmplib/container_iterator.c
index 41b14ffeaee8..2bdf773e8ab0 100644
--- a/snmplib/container_iterator.c
+++ b/snmplib/container_iterator.c
@@ -285,18 +285,21 @@ _iterator_get_next(iterator_info *ii, const void *key)
  * container
  *
  **********************************************************************/
-static void
-_iterator_free(iterator_info *ii)
+static int _iterator_free(netsnmp_container *c)
 {
+    iterator_info *ii = (iterator_info *)c;
+
     DEBUGMSGT(("container_iterator",">%s\n", "_iterator_free"));
     
     if(NULL == ii)
-        return;
+        return 0;
     
     if(ii->user_ctx)
         ii->free_user_ctx(ii->user_ctx,ii->user_ctx);
     
     free(ii);
+
+    return 0;
 }
 
 static void *
@@ -463,7 +466,7 @@ netsnmp_container_iterator_get(void *iterator_user_ctx,
     /*
      * init container structure with iterator functions
      */
-    ii->c.cfree = (netsnmp_container_rc*)_iterator_free;
+    ii->c.cfree = _iterator_free;
     ii->c.compare = compare;
     ii->c.get_size = (netsnmp_container_size*)_iterator_size;
     ii->c.init = NULL;
-- 
2.17.1


------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.