| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 | diff --git a/thirdparty/lwip/src/apps/snmp/snmp_mib2_system.c b/thirdparty/lwip/src/apps/snmp/snmp_mib2_system.cindex 4aa2926..89f5d92 100755--- a/thirdparty/lwip/src/apps/snmp/snmp_mib2_system.c+++ b/thirdparty/lwip/src/apps/snmp/snmp_mib2_system.c@@ -43,6 +43,10 @@  #include <string.h> +#ifdef SNMP_SYS_PARAM_FILENAME+#include SNMP_SYS_PARAM_FILENAME+#endif+ #if LWIP_SNMP && SNMP_LWIP_MIB2  #if SNMP_USE_NETCONN@@ -284,6 +288,9 @@ system_set_test(const struct snmp_scalar_array_node_def *node, u16_t len, void *   snmp_err_t ret = SNMP_ERR_WRONGVALUE;   const u16_t* var_bufsize  = NULL;   const u16_t* var_wr_len;+#ifdef SNMP_SYS_PARAM_FILENAME+  bool check_flag = true;+#endif    LWIP_UNUSED_ARG(value); @@ -307,13 +314,24 @@ system_set_test(const struct snmp_scalar_array_node_def *node, u16_t len, void *    /* check if value is writable at all */   if (*var_bufsize > 0) {+#ifdef SNMP_SYS_PARAM_CHECK+	  check_flag = SNMP_SYS_PARAM_CHECK(value, len);+#endif     if (var_wr_len == NULL) {       /* we have to take the terminating 0 into account */-      if (len < *var_bufsize) {+#ifdef SNMP_SYS_PARAM_CHECK+      if (len <= *var_bufsize && check_flag) {+#else+      if (len <= *var_bufsize) {+#endif         ret = SNMP_ERR_NOERROR;       }     } else {+#ifdef SNMP_SYS_PARAM_CHECK+      if (len <= *var_bufsize && check_flag) {+#else       if (len <= *var_bufsize) {+#endif         ret = SNMP_ERR_NOERROR;       }     }@@ -358,6 +376,9 @@ system_set_value(const struct snmp_scalar_array_node_def *node, u16_t len, void   } else {     *var_wr_len = len;   }+#ifdef SNMP_SYS_PARAM_SAVE+    SNMP_SYS_PARAM_SAVE();+#endif    return SNMP_ERR_NOERROR; }
 |