You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@trafficserver.apache.org by "Leif Hedstrom (JIRA)" <ji...@apache.org> on 2016/03/26 16:19:25 UTC

[jira] [Updated] (TS-4305) Coverity issues in geoip_acl plugin

     [ https://issues.apache.org/jira/browse/TS-4305?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Leif Hedstrom updated TS-4305:
------------------------------
    Fix Version/s: 6.2.0

> Coverity issues in geoip_acl plugin
> -----------------------------------
>
>                 Key: TS-4305
>                 URL: https://issues.apache.org/jira/browse/TS-4305
>             Project: Traffic Server
>          Issue Type: Bug
>          Components: Plugins
>            Reporter: Leif Hedstrom
>            Assignee: Leif Hedstrom
>             Fix For: 6.2.0
>
>
> Some of this looks old, but should fix them all:
> {code}
> ** CID 1353618:  Uninitialized members  (UNINIT_CTOR)
> /plugins/experimental/geoip_acl/acl.h: 96 in RegexAcl::RegexAcl(Acl *)()
> ________________________________________________________________________________________________________
> *** CID 1353618:  Uninitialized members  (UNINIT_CTOR)
> /plugins/experimental/geoip_acl/acl.h: 96 in RegexAcl::RegexAcl(Acl *)()
> 90     
> 91     
> 92     // Base class for all Regex ACLs (which contain Acl() subclassed instances)
> 93     class RegexAcl
> 94     {
> 95     public:
>    CID 1353618:  Uninitialized members  (UNINIT_CTOR)
>    Non-static class member "_extra" is not initialized in this constructor nor in any functions that it calls.
> 96       RegexAcl(Acl *acl) : _next(NULL), _acl(acl) {}
> 97     
> 98       const std::string &
> 99       get_regex() const
> 100       {
> 101         return _regex_s;
> ** CID 1353617:  Uninitialized members  (UNINIT_CTOR)
> /plugins/experimental/geoip_acl/acl.h: 50 in Acl::Acl()()
> ________________________________________________________________________________________________________
> *** CID 1353617:  Uninitialized members  (UNINIT_CTOR)
> /plugins/experimental/geoip_acl/acl.h: 50 in Acl::Acl()()
> 44     
> 45     
> 46     // Base class for all ACLs
> 47     class Acl
> 48     {
> 49     public:
>    CID 1353617:  Uninitialized members  (UNINIT_CTOR)
>    Non-static class member "_added_tokens" is not initialized in this constructor nor in any functions that it calls.
> 50       Acl() : _allow(true) {}
> 51     
> 52       virtual ~Acl() {}
> 53     
> 54       // These have to be implemented for each ACL type
> 55       virtual void read_regex(const char *fn) = 0;
> ** CID 1353616:  Resource leaks  (RESOURCE_LEAK)
> /plugins/experimental/geoip_acl/acl.cc: 254 in CountryAcl::read_regex(const char *)()
> ________________________________________________________________________________________________________
> *** CID 1353616:  Resource leaks  (RESOURCE_LEAK)
> /plugins/experimental/geoip_acl/acl.cc: 254 in CountryAcl::read_regex(const char *)()
> 248             }
> 249             acl = NULL;
> 250           }
> 251         }
> 252         f.close();
> 253         TSDebug(PLUGIN_NAME, "Loaded regex rules from %s", fn);
>    CID 1353616:  Resource leaks  (RESOURCE_LEAK)
>    Variable "acl" going out of scope leaks the storage it points to.
> 254       } else {
> 255         TSError("[%s] Unable to open regex file %s", PLUGIN_NAME, fn);
> 256       }
> 257     }
> 258     
> 259     bool
> ** CID 1353615:  Error handling issues  (NEGATIVE_RETURNS)
> /plugins/experimental/geoip_acl/acl.cc: 136 in RegexAcl::parse_line(const char *, const std::basic_string<char, std::char_traits<char>, std::allocator<char>>&, int)()
> ________________________________________________________________________________________________________
> *** CID 1353615:  Error handling issues  (NEGATIVE_RETURNS)
> /plugins/experimental/geoip_acl/acl.cc: 136 in RegexAcl::parse_line(const char *, const std::basic_string<char, std::char_traits<char>, std::allocator<char>>&, int)()
> 130       std::string::size_type pos1, pos2;
> 131     
> 132       if (line.empty()) {
> 133         return false;
> 134       }
> 135       pos1 = line.find_first_not_of(_SEPARATOR);
>    CID 1353615:  Error handling issues  (NEGATIVE_RETURNS)
>    "pos1" is passed to a parameter that cannot be negative. [Note: The source code implementation of the function has been overridden by a builtin model.]
> 136       if (line[pos1] == '#' || pos1 == std::string::npos) {
> 137         return false;
> 138       }
> 139     
> 140       pos2 = line.find_first_of(_SEPARATOR, pos1);
> 141       if (pos2 != std::string::npos) {
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)