浏览代码

permissions: safety checks when destroying module

- avoid warning of freeing null pointers on failed startup
Daniel-Constantin Mierla 5 年之前
父节点
当前提交
d98d8b653e
共有 1 个文件被更改,包括 5 次插入5 次删除
  1. 5 5
      src/modules/permissions/permissions.c

+ 5 - 5
src/modules/permissions/permissions.c

@@ -48,7 +48,7 @@ MODULE_VERSION
 
 static rule_file_t allow[MAX_RULE_FILES]; /* Parsed allow files */
 static rule_file_t deny[MAX_RULE_FILES];  /* Parsed deny files */
-static int rules_num;  /* Number of parsed allow/deny files */
+static int rules_num = 0;  /* Number of parsed allow/deny files */
 
 
 /* Module parameter variables */
@@ -664,11 +664,11 @@ static void mod_exit(void)
 	int i;
 
 	for(i = 0; i < rules_num; i++) {
-		free_rule(allow[i].rules);
-		pkg_free(allow[i].filename);
+		if(allow[i].rules) free_rule(allow[i].rules);
+		if(allow[i].filename) pkg_free(allow[i].filename);
 
-		free_rule(deny[i].rules);
-		pkg_free(deny[i].filename);
+		if(deny[i].rules) free_rule(deny[i].rules);
+		if(deny[i].filename) pkg_free(deny[i].filename);
 	}
 
 	clean_trusted();