ソースを参照

解决snmp的bug

guohui 2 年 前
親
コミット
fb691a6931
共有1 個のファイルを変更した、8 個の追加 と 6 個の削除を含む
  1. 8 6
      pro/src/sqlite_handle.c

+ 8 - 6
pro/src/sqlite_handle.c

@@ -3002,12 +3002,14 @@ int dev_get_snmp_info(sqlite3 *db, SNMPManager* _globalSNMPInfo)
     _globalSNMPInfo->version= atoi(pResult[rowIndex*ncolumn+1]);
     _globalSNMPInfo->mode = atoi(pResult[rowIndex*ncolumn+2]); 
     strcpy(_globalSNMPInfo->public,pResult[rowIndex*ncolumn+3]);
-    _globalSNMPInfo->trapmode = atoi(pResult[rowIndex*ncolumn+4]); 
-    strcpy(_globalSNMPInfo->crypt.user,pResult[rowIndex*ncolumn+5]);
-    strcpy(_globalSNMPInfo->crypt.auth.alg,pResult[rowIndex*ncolumn+6]);
-    strcpy(_globalSNMPInfo->crypt.auth.passwd,pResult[rowIndex*ncolumn+7]);
-    strcpy(_globalSNMPInfo->crypt.priv.alg,pResult[rowIndex*ncolumn+8]);
-    strcpy(_globalSNMPInfo->crypt.priv.passwd,pResult[rowIndex*ncolumn+9]);
+    _globalSNMPInfo->trapmode = atoi(pResult[rowIndex*ncolumn+4]);
+    if(_globalSNMPInfo->mode==2) {
+        if(pResult[rowIndex*ncolumn+5]) strcpy(_globalSNMPInfo->crypt.user,pResult[rowIndex*ncolumn+5]);
+        if(pResult[rowIndex*ncolumn+6]) strcpy(_globalSNMPInfo->crypt.auth.alg,pResult[rowIndex*ncolumn+6]);
+        if(pResult[rowIndex*ncolumn+7]) strcpy(_globalSNMPInfo->crypt.auth.passwd,pResult[rowIndex*ncolumn+7]);
+        if(pResult[rowIndex*ncolumn+8]) strcpy(_globalSNMPInfo->crypt.priv.alg,pResult[rowIndex*ncolumn+8]);
+        if(pResult[rowIndex*ncolumn+9]) strcpy(_globalSNMPInfo->crypt.priv.passwd,pResult[rowIndex*ncolumn+9]);
+    }
 
     sqlite3_free_table(pResult);
     return 0;