Project

General

Profile

Actions

Bug #3864

closed

plugin: coverity issues

Added by Victor Julien over 3 years ago. Updated over 3 years ago.

Status:
Closed
Priority:
Normal
Assignee:
Target version:
Affected Versions:
Effort:
Difficulty:
Label:

Description

** CID 1465665:  API usage errors  (ALLOC_FREE_MISMATCH)
/src/util-plugin.c: 82 in SCPluginsLoad()

________________________________________________________________________________________________________
*** CID 1465665:  API usage errors  (ALLOC_FREE_MISMATCH)
/src/util-plugin.c: 82 in SCPluginsLoad()
76                 while ((entry = readdir(dir)) != NULL) {
77                     if (strstr(entry->d_name, ".so") != NULL) {
78                         snprintf(path, sizeof(path), "%s/%s", plugin->val, entry->d_name);
79                         InitPlugin(path);
80                     }
81                 }
>>>     CID 1465665:  API usage errors  (ALLOC_FREE_MISMATCH)
>>>     Calling "free" frees "dir" using "free" but it should have been freed using "closedir".
82                 free(dir);
83             } else {
84                 InitPlugin(plugin->val);
85             }
86         }
87     

** CID 1465664:  Memory - illegal accesses  (USE_AFTER_FREE)
/src/output-json.c: 1276 in OutputJsonInitCtx()

________________________________________________________________________________________________________
*** CID 1465664:  Memory - illegal accesses  (USE_AFTER_FREE)
/src/output-json.c: 1276 in OutputJsonInitCtx()
1270     
1271             json_ctx->file_ctx->type = json_ctx->json_out;
1272         }
1273     
1274         SCLogDebug("returning output_ctx %p", output_ctx);
1275     
>>>     CID 1465664:  Memory - illegal accesses  (USE_AFTER_FREE)
>>>     Using freed pointer "output_ctx".
1276         result.ctx = output_ctx;
1277         result.ok = true;
1278         return result;
1279     }
1280     
1281     static void OutputJsonDeInitCtx(OutputCtx *output_ctx)

** CID 1465662:  Security best practices violations  (TOCTOU)
/src/util-plugin.c: 62 in SCPluginsLoad()

________________________________________________________________________________________________________
*** CID 1465662:  Security best practices violations  (TOCTOU)
/src/util-plugin.c: 62 in SCPluginsLoad()
56         if (conf == NULL) {
57             return;
58         }
59         ConfNode *plugin = NULL;
60         TAILQ_FOREACH(plugin, &conf->head, next) {
61             struct stat statbuf;
>>>     CID 1465662:  Security best practices violations  (TOCTOU)
>>>     Calling function "stat" to perform check on "plugin->val".
62             if (stat(plugin->val, &statbuf) == -1) {
63                 SCLogError(SC_ERR_STAT, "Bad plugin path: %s: %s",
64                     plugin->val, strerror(errno));
65                 continue;
66             }
67             if (S_ISDIR(statbuf.st_mode)) {

** CID 1465661:  Resource leaks  (RESOURCE_LEAK)
/src/util-plugin.c: 51 in InitPlugin()

________________________________________________________________________________________________________
*** CID 1465661:  Resource leaks  (RESOURCE_LEAK)
/src/util-plugin.c: 51 in InitPlugin()
45                 BUG_ON(plugin->Init == NULL);
46                 SCLogNotice("Initializing plugin %s; author=%s; license=%s",
47                     plugin->name, plugin->author, plugin->license);
48                 (*plugin->Init)();
49             }
50         }
>>>     CID 1465661:  Resource leaks  (RESOURCE_LEAK)
>>>     Variable "lib" going out of scope leaks the storage it points to.
51     }
52     
53     void SCPluginsLoad(const char *capture_plugin_name, const char *capture_plugin_args)
54     {
55         ConfNode *conf = ConfGetNode("plugins");
56         if (conf == NULL) {
Actions #1

Updated by Jason Ish over 3 years ago

** CID 1465662:  Security best practices violations  (TOCTOU)
/src/util-plugin.c: 62 in SCPluginsLoad()

________________________________________________________________________________________________________
*** CID 1465662:  Security best practices violations  (TOCTOU)
/src/util-plugin.c: 62 in SCPluginsLoad()
56         if (conf == NULL) {
57             return;
58         }
59         ConfNode *plugin = NULL;
60         TAILQ_FOREACH(plugin, &conf->head, next) {
61             struct stat statbuf;
>>>     CID 1465662:  Security best practices violations  (TOCTOU)
>>>     Calling function "stat" to perform check on "plugin->val".
62             if (stat(plugin->val, &statbuf) == -1) {
63                 SCLogError(SC_ERR_STAT, "Bad plugin path: %s: %s",
64                     plugin->val, strerror(errno));
65                 continue;
66             }
67             if (S_ISDIR(statbuf.st_mode)) {

Can we declare this a false positive. I get what they are checking for, but this code properly checks the return values so we should not run into any issues.
Actions #2

Updated by Jason Ish over 3 years ago

  • Status changed from Assigned to In Review
Actions #3

Updated by Victor Julien over 3 years ago

  • Status changed from In Review to Closed
Actions

Also available in: Atom PDF