The following issues were found
streaming/sender.c
9 issues
Line: 215
Column: 5
CWE codes:
119
120
Suggestion:
Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length
stream_encoded_t se;
rrdpush_encode_variable(&se, host);
char http[HTTP_HEADER_SIZE + 1];
int eol = snprintfz(http, HTTP_HEADER_SIZE,
"STREAM key=%s&hostname=%s®istry_hostname=%s&machine_guid=%s&update_every=%d&os=%s&timezone=%s&abbrev_timezone=%s&utc_offset=%d&hops=%d&tags=%s&ver=%u"
"&NETDATA_SYSTEM_OS_NAME=%s"
"&NETDATA_SYSTEM_OS_ID=%s"
"&NETDATA_SYSTEM_OS_ID_LIKE=%s"
Reported by FlawFinder.
Line: 486
Column: 9
CWE codes:
119
120
Suggestion:
Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length
if (sslerrno == SSL_ERROR_WANT_READ || sslerrno == SSL_ERROR_WANT_WRITE)
return;
u_long err;
char buf[256];
while ((err = ERR_get_error()) != 0) {
ERR_error_string_n(err, buf, sizeof(buf));
error("STREAM %s [send to %s] ssl error: %s", s->host->hostname, s->connected_to, buf);
}
error("Restarting connection");
Reported by FlawFinder.
Line: 685
Column: 13
CWE codes:
119
120
Suggestion:
Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length
if (fds[Collector].revents & POLLIN || fds[Collector].revents & POLLPRI) {
debug(D_STREAM, "STREAM: Data added to send buffer (current buffer chunk %zu bytes)...", outstanding);
char buffer[1000 + 1];
if (read(s->host->rrdpush_sender_pipe[PIPE_READ], buffer, 1000) == -1)
error("STREAM %s [send to %s]: cannot read from internal pipe.", s->host->hostname, s->connected_to);
}
// Read as much as possible to fill the buffer, split into full lines for execution.
Reported by FlawFinder.
Line: 316
Column: 67
CWE codes:
126
}
}
}
if(send_timeout(&host->ssl,host->rrdpush_sender_socket, http, strlen(http), 0, timeout) == -1) {
#else
if(send_timeout(host->rrdpush_sender_socket, http, strlen(http), 0, timeout) == -1) {
#endif
error("STREAM %s [send to %s]: failed to send HTTP header to remote netdata.", host->hostname, s->connected_to);
rrdpush_sender_thread_close_socket(host);
Reported by FlawFinder.
Line: 318
Column: 56
CWE codes:
126
}
if(send_timeout(&host->ssl,host->rrdpush_sender_socket, http, strlen(http), 0, timeout) == -1) {
#else
if(send_timeout(host->rrdpush_sender_socket, http, strlen(http), 0, timeout) == -1) {
#endif
error("STREAM %s [send to %s]: failed to send HTTP header to remote netdata.", host->hostname, s->connected_to);
rrdpush_sender_thread_close_socket(host);
return 0;
}
Reported by FlawFinder.
Line: 353
Column: 58
CWE codes:
126
rrdpush_set_flags_to_newest_stream(host);
}
} else {
answer = memcmp(http, START_STREAMING_PROMPT_V2, strlen(START_STREAMING_PROMPT_V2));
if(!answer) {
version = 1;
rrdpush_set_flags_to_newest_stream(host);
}
else {
Reported by FlawFinder.
Line: 359
Column: 59
CWE codes:
126
rrdpush_set_flags_to_newest_stream(host);
}
else {
answer = memcmp(http, START_STREAMING_PROMPT, strlen(START_STREAMING_PROMPT));
if(!answer) {
version = 0;
host->labels.labels_flag |= LABEL_FLAG_STOP_STREAM;
host->labels.labels_flag &= ~LABEL_FLAG_UPDATE_STREAM;
}
Reported by FlawFinder.
Line: 436
Column: 91
CWE codes:
120
20
netdata_mutex_lock(&s->mutex);
char *chunk;
size_t outstanding = cbuffer_next_unsafe(s->buffer, &chunk);
debug(D_STREAM, "STREAM: Sending data. Buffer r=%zu w=%zu s=%zu, next chunk=%zu", cb->read, cb->write, cb->size, outstanding);
ssize_t ret;
#ifdef ENABLE_HTTPS
SSL *conn = s->host->ssl.conn ;
if(conn && !s->host->ssl.flags) {
ret = SSL_write(conn, chunk, outstanding);
Reported by FlawFinder.
Line: 686
Column: 17
CWE codes:
120
20
debug(D_STREAM, "STREAM: Data added to send buffer (current buffer chunk %zu bytes)...", outstanding);
char buffer[1000 + 1];
if (read(s->host->rrdpush_sender_pipe[PIPE_READ], buffer, 1000) == -1)
error("STREAM %s [send to %s]: cannot read from internal pipe.", s->host->hostname, s->connected_to);
}
// Read as much as possible to fill the buffer, split into full lines for execution.
if (fds[Socket].revents & POLLIN)
Reported by FlawFinder.
collectors/python.d.plugin/python_modules/urllib3/util/__init__.py
9 issues
Line: 4
Column: 1
# SPDX-License-Identifier: MIT
from __future__ import absolute_import
# For backwards compatibility, provide imports that used to be here.
from .connection import is_connection_dropped
from .request import make_headers
from .response import is_fp_closed
from .ssl_ import (
SSLContext,
HAS_SNI,
Reported by Pylint.
Line: 5
Column: 1
from __future__ import absolute_import
# For backwards compatibility, provide imports that used to be here.
from .connection import is_connection_dropped
from .request import make_headers
from .response import is_fp_closed
from .ssl_ import (
SSLContext,
HAS_SNI,
IS_PYOPENSSL,
Reported by Pylint.
Line: 6
Column: 1
# For backwards compatibility, provide imports that used to be here.
from .connection import is_connection_dropped
from .request import make_headers
from .response import is_fp_closed
from .ssl_ import (
SSLContext,
HAS_SNI,
IS_PYOPENSSL,
IS_SECURETRANSPORT,
Reported by Pylint.
Line: 7
Column: 1
from .connection import is_connection_dropped
from .request import make_headers
from .response import is_fp_closed
from .ssl_ import (
SSLContext,
HAS_SNI,
IS_PYOPENSSL,
IS_SECURETRANSPORT,
assert_fingerprint,
Reported by Pylint.
Line: 17
Column: 1
resolve_ssl_version,
ssl_wrap_socket,
)
from .timeout import (
current_time,
Timeout,
)
from .retry import Retry
Reported by Pylint.
Line: 22
Column: 1
Timeout,
)
from .retry import Retry
from .url import (
get_host,
parse_url,
split_first,
Url,
Reported by Pylint.
Line: 23
Column: 1
)
from .retry import Retry
from .url import (
get_host,
parse_url,
split_first,
Url,
)
Reported by Pylint.
Line: 29
Column: 1
split_first,
Url,
)
from .wait import (
wait_for_read,
wait_for_write
)
__all__ = (
Reported by Pylint.
Line: 1
Column: 1
# SPDX-License-Identifier: MIT
from __future__ import absolute_import
# For backwards compatibility, provide imports that used to be here.
from .connection import is_connection_dropped
from .request import make_headers
from .response import is_fp_closed
from .ssl_ import (
SSLContext,
HAS_SNI,
Reported by Pylint.
libnetdata/procfile/procfile.c
9 issues
Line: 30
Column: 17
CWE codes:
362
20
Suggestion:
Reconsider approach
char buffer[FILENAME_MAX + 1];
snprintfz(buffer, FILENAME_MAX, "/proc/self/fd/%d", ff->fd);
ssize_t l = readlink(buffer, ff->filename, FILENAME_MAX);
if(unlikely(l == -1))
snprintfz(ff->filename, FILENAME_MAX, "unknown filename for fd %d", ff->fd);
else
ff->filename[l] = '\0';
Reported by FlawFinder.
Line: 27
Column: 5
CWE codes:
119
120
Suggestion:
Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length
char *procfile_filename(procfile *ff) {
if(ff->filename[0]) return ff->filename;
char buffer[FILENAME_MAX + 1];
snprintfz(buffer, FILENAME_MAX, "/proc/self/fd/%d", ff->fd);
ssize_t l = readlink(buffer, ff->filename, FILENAME_MAX);
if(unlikely(l == -1))
snprintfz(ff->filename, FILENAME_MAX, "unknown filename for fd %d", ff->fd);
Reported by FlawFinder.
Line: 370
Column: 56
CWE codes:
362
ffs[(int)*s++] = PF_CHAR_IS_QUOTE;
}
void procfile_set_open_close(procfile *ff, const char *open, const char *close) {
PF_CHAR_TYPE *ffs = ff->separators;
// remove all open/close
int i = 256;
while(i--)
Reported by FlawFinder.
Line: 380
Column: 28
CWE codes:
362
ffs[i] = PF_CHAR_IS_WORD;
// if nothing given, return
if(unlikely(!open || !*open || !close || !*close))
return;
// set the openings
const char *s = open;
while(*s)
Reported by FlawFinder.
Line: 380
Column: 18
CWE codes:
362
ffs[i] = PF_CHAR_IS_WORD;
// if nothing given, return
if(unlikely(!open || !*open || !close || !*close))
return;
// set the openings
const char *s = open;
while(*s)
Reported by FlawFinder.
Line: 384
Column: 21
CWE codes:
362
return;
// set the openings
const char *s = open;
while(*s)
ffs[(int)*s++] = PF_CHAR_IS_OPEN;
// set the closings
s = close;
Reported by FlawFinder.
Line: 397
Column: 14
CWE codes:
362
procfile *procfile_open(const char *filename, const char *separators, uint32_t flags) {
debug(D_PROCFILE, PF_PREFIX ": Opening file '%s'", filename);
int fd = open(filename, procfile_open_flags, 0666);
if(unlikely(fd == -1)) {
if(unlikely(!(flags & PROCFILE_FLAG_NO_ERROR_ON_FILE_IO))) error(PF_PREFIX ": Cannot open file '%s'", filename);
return NULL;
}
Reported by FlawFinder.
Line: 433
Column: 14
CWE codes:
362
close(ff->fd);
}
ff->fd = open(filename, procfile_open_flags, 0666);
if(unlikely(ff->fd == -1)) {
procfile_close(ff);
return NULL;
}
Reported by FlawFinder.
Line: 281
Column: 13
CWE codes:
120
20
}
debug(D_PROCFILE, "Reading file '%s', from position %zd with length %zd", procfile_filename(ff), s, (ssize_t)(ff->size - s));
r = read(ff->fd, &ff->data[s], ff->size - s);
if(unlikely(r == -1)) {
if(unlikely(!(ff->flags & PROCFILE_FLAG_NO_ERROR_ON_FILE_IO))) error(PF_PREFIX ": Cannot read from file '%s' on fd %d", procfile_filename(ff), ff->fd);
procfile_close(ff);
return NULL;
}
Reported by FlawFinder.
collectors/python.d.plugin/energid/energid.chart.py
8 issues
Line: 12
Column: 1
import json
from bases.FrameworkServices.UrlService import UrlService
update_every = 5
ORDER = [
'blockindex',
Reported by Pylint.
Line: 1
Column: 1
# -*- coding: utf-8 -*-
# Description: Energi Core / Bitcoin netdata python.d module
# Author: Andrey Galkin <andrey@futoin.org> (andvgal)
# SPDX-License-Identifier: GPL-3.0-or-later
#
# This module is designed for energid, but it should work with many other Bitcoin forks
# which support more or less standard JSON-RPC.
#
Reported by Pylint.
Line: 14
Column: 1
from bases.FrameworkServices.UrlService import UrlService
update_every = 5
ORDER = [
'blockindex',
'difficulty',
'mempool',
Reported by Pylint.
Line: 36
Column: 1
]
},
'difficulty': {
'options': [None, 'Blockchain Difficulty', 'difficulty', 'blockchain', 'energi.difficulty', 'line'],
'lines': [
['blockchain_difficulty', 'Diff', 'absolute'],
],
},
'mempool': {
Reported by Pylint.
Line: 95
Column: 32
'mempool_current': r['usage'],
'mempool_max': r['maxmempool'],
},
'getmemoryinfo': lambda r: dict([
('secmem_' + k, v) for (k, v) in r['locked'].items()
]),
'getnetworkinfo': lambda r: {
'network_timeoffset': r['timeoffset'],
'network_connections': r['connections'],
Reported by Pylint.
Line: 113
Column: 1
JSON_RPC_VERSION = '1.1'
class Service(UrlService):
def __init__(self, configuration=None, name=None):
UrlService.__init__(self, configuration=configuration, name=name)
self.order = ORDER
self.definitions = CHARTS
self.host = self.configuration.get('host', '127.0.0.1')
Reported by Pylint.
Line: 113
Column: 1
JSON_RPC_VERSION = '1.1'
class Service(UrlService):
def __init__(self, configuration=None, name=None):
UrlService.__init__(self, configuration=configuration, name=name)
self.order = ORDER
self.definitions = CHARTS
self.host = self.configuration.get('host', '127.0.0.1')
Reported by Pylint.
Line: 160
Column: 13
data = dict()
for i, (_, handler) in enumerate(METHODS.items()):
r = result[i]
data.update(handler(r['result']))
return data
Reported by Pylint.
collectors/python.d.plugin/boinc/boinc.chart.py
8 issues
Line: 8
Column: 1
import socket
from bases.FrameworkServices.SimpleService import SimpleService
from third_party import boinc_client
ORDER = [
'tasks',
'states',
Reported by Pylint.
Line: 9
Column: 1
import socket
from bases.FrameworkServices.SimpleService import SimpleService
from third_party import boinc_client
ORDER = [
'tasks',
'states',
'sched_states',
Reported by Pylint.
Line: 1
Column: 1
# -*- coding: utf-8 -*-
# Description: BOINC netdata python.d module
# Author: Austin S. Hemmelgarn (Ferroin)
# SPDX-License-Identifier: GPL-3.0-or-later
import socket
from bases.FrameworkServices.SimpleService import SimpleService
from third_party import boinc_client
Reported by Pylint.
Line: 114
Column: 1
}
class Service(SimpleService):
def __init__(self, configuration=None, name=None):
SimpleService.__init__(self, configuration=configuration, name=name)
self.order = ORDER
self.definitions = CHARTS
self.host = self.configuration.get('host', 'localhost')
Reported by Pylint.
Line: 125
Column: 5
self.client = boinc_client.BoincClient(host=self.host, port=self.port, passwd=self.password)
self.alive = False
def check(self):
return self.connect()
def connect(self):
self.client.connect()
self.alive = self.client.connected and self.client.authorized
Reported by Pylint.
Line: 128
Column: 5
def check(self):
return self.connect()
def connect(self):
self.client.connect()
self.alive = self.client.connected and self.client.authorized
return self.alive
def reconnect(self):
Reported by Pylint.
Line: 133
Column: 5
self.alive = self.client.connected and self.client.authorized
return self.alive
def reconnect(self):
# The client class itself actually disconnects existing
# connections when it is told to connect, so we don't need to
# explicitly disconnect when we're just trying to reconnect.
return self.connect()
Reported by Pylint.
Line: 139
Column: 5
# explicitly disconnect when we're just trying to reconnect.
return self.connect()
def is_alive(self):
if not self.alive:
return self.reconnect()
return True
def _get_data(self):
Reported by Pylint.
aclk/legacy/aclk_lws_https_client.c
8 issues
Line: 14
Column: 5
CWE codes:
119
120
Suggestion:
Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length
char *data;
size_t data_size;
size_t written;
char lws_work_buffer[1024 + LWS_PRE];
char *payload;
int response_code;
int done;
};
Reported by FlawFinder.
Line: 25
Column: 5
CWE codes:
119
120
Suggestion:
Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length
UNUSED(user);
int n;
char *ptr;
char buffer[SMALL_BUFFER];
struct simple_hcc_data *perconn_data = lws_get_opaque_user_data(wsi);
switch (reason) {
case LWS_CALLBACK_RECEIVE_CLIENT_HTTP_READ:
debug(D_ACLK, "LWS_CALLBACK_RECEIVE_CLIENT_HTTP_READ");
Reported by FlawFinder.
Line: 33
Column: 9
CWE codes:
120
Suggestion:
Make sure destination can always hold the source data
debug(D_ACLK, "LWS_CALLBACK_RECEIVE_CLIENT_HTTP_READ");
if (perconn_data->data_size - 1 - perconn_data->written < len)
return 1;
memcpy(&perconn_data->data[perconn_data->written], in, len);
perconn_data->written += len;
return 0;
case LWS_CALLBACK_RECEIVE_CLIENT_HTTP:
debug(D_ACLK, "LWS_CALLBACK_RECEIVE_CLIENT_HTTP");
if(!perconn_data) {
Reported by FlawFinder.
Line: 91
Column: 13
CWE codes:
120
Suggestion:
Make sure destination can always hold the source data
return 1;
}
memcpy(&perconn_data->data[LWS_PRE], perconn_data->payload, n);
if(n != lws_write(wsi, (unsigned char*)&perconn_data->data[LWS_PRE], n, LWS_WRITE_HTTP)) {
error("lws_write error");
perconn_data->data[0] = 0;
return 1;
}
Reported by FlawFinder.
Line: 68
Column: 52
CWE codes:
126
debug(D_ACLK, "LWS_CALLBACK_CLIENT_APPEND_HANDSHAKE_HEADER");
if(perconn_data && perconn_data->payload) {
unsigned char **p = (unsigned char **)in, *end = (*p) + len;
snprintfz(buffer, SMALL_BUFFER, "%zu", strlen(perconn_data->payload));
if (lws_add_http_header_by_token(wsi,
WSI_TOKEN_HTTP_CONTENT_LENGTH,
(unsigned char *)buffer, strlen(buffer), p, end))
return -1;
if (lws_add_http_header_by_token(wsi,
Reported by FlawFinder.
Line: 71
Column: 46
CWE codes:
126
snprintfz(buffer, SMALL_BUFFER, "%zu", strlen(perconn_data->payload));
if (lws_add_http_header_by_token(wsi,
WSI_TOKEN_HTTP_CONTENT_LENGTH,
(unsigned char *)buffer, strlen(buffer), p, end))
return -1;
if (lws_add_http_header_by_token(wsi,
WSI_TOKEN_HTTP_CONTENT_TYPE,
(unsigned char *)ACLK_CONTENT_TYPE_JSON,
strlen(ACLK_CONTENT_TYPE_JSON), p, end))
Reported by FlawFinder.
Line: 76
Column: 21
CWE codes:
126
if (lws_add_http_header_by_token(wsi,
WSI_TOKEN_HTTP_CONTENT_TYPE,
(unsigned char *)ACLK_CONTENT_TYPE_JSON,
strlen(ACLK_CONTENT_TYPE_JSON), p, end))
return -1;
lws_client_http_body_pending(wsi, 1);
lws_callback_on_writable(wsi);
}
return 0;
Reported by FlawFinder.
Line: 85
Column: 17
CWE codes:
126
case LWS_CALLBACK_CLIENT_HTTP_WRITEABLE:
debug(D_ACLK, "LWS_CALLBACK_CLIENT_HTTP_WRITEABLE");
if(perconn_data && perconn_data->payload) {
n = strlen(perconn_data->payload);
if(perconn_data->data_size < (size_t)LWS_PRE + n + 1) {
error("Buffer given is not big enough");
return 1;
}
Reported by FlawFinder.
collectors/python.d.plugin/python_modules/urllib3/packages/ssl_match_hostname/_implementation.py
8 issues
Line: 80
Column: 15
def _to_unicode(obj):
if isinstance(obj, str) and sys.version_info < (3,):
obj = unicode(obj, encoding='ascii', errors='strict')
return obj
def _ipaddress_match(ipname, host_ip):
"""Exact matching of IP addresses.
Reported by Pylint.
Line: 113
Column: 12
except ValueError:
# Not an IP address (common case)
host_ip = None
except UnicodeError:
# Divergence from upstream: Have to deal with ipaddress not taking
# byte strings. addresses should be all ascii, so we consider it not
# an ipaddress in this case
host_ip = None
except AttributeError:
Reported by Pylint.
Line: 140
Column: 3
# in subjectAltName
for sub in cert.get('subject', ()):
for key, value in sub:
# XXX according to RFC 2818, the most specific Common Name
# must be used.
if key == 'commonName':
if _dnsname_match(value, hostname):
return
dnsnames.append(value)
Reported by Pylint.
Line: 21
Column: 1
__version__ = '3.5.0.1'
class CertificateError(ValueError):
pass
def _dnsname_match(dn, hostname, max_wildcards=1):
"""Matching according to RFC 6125, section 6.4.3
Reported by Pylint.
Line: 25
Column: 1
pass
def _dnsname_match(dn, hostname, max_wildcards=1):
"""Matching according to RFC 6125, section 6.4.3
http://tools.ietf.org/html/rfc6125#section-6.4.3
"""
pats = []
Reported by Pylint.
Line: 91
Column: 5
"""
# OpenSSL may add a trailing newline to a subjectAltName's IP address
# Divergence from upstream: ipaddress can't handle byte str
ip = ipaddress.ip_address(_to_unicode(ipname).rstrip())
return ip == host_ip
def match_hostname(cert, hostname):
"""Verify that *cert* (in decoded format as returned by
Reported by Pylint.
Line: 95
Column: 1
return ip == host_ip
def match_hostname(cert, hostname):
"""Verify that *cert* (in decoded format as returned by
SSLSocket.getpeercert()) matches the *hostname*. RFC 2818 and RFC 6125
rules are followed, but IP addresses are not accepted for *hostname*.
CertificateError is raised on failure. On success, the function
Reported by Pylint.
Line: 146
Column: 5
if _dnsname_match(value, hostname):
return
dnsnames.append(value)
if len(dnsnames) > 1:
raise CertificateError("hostname %r "
"doesn't match either of %s"
% (hostname, ', '.join(map(repr, dnsnames))))
elif len(dnsnames) == 1:
raise CertificateError("hostname %r "
Reported by Pylint.
registry/registry_db.c
8 issues
Line: 115
Column: 5
CWE codes:
119
120
Suggestion:
Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length
error_log_limit_unlimited();
char tmp_filename[FILENAME_MAX + 1];
char old_filename[FILENAME_MAX + 1];
snprintfz(old_filename, FILENAME_MAX, "%s.old", registry.db_filename);
snprintfz(tmp_filename, FILENAME_MAX, "%s.tmp", registry.db_filename);
Reported by FlawFinder.
Line: 116
Column: 5
CWE codes:
119
120
Suggestion:
Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length
error_log_limit_unlimited();
char tmp_filename[FILENAME_MAX + 1];
char old_filename[FILENAME_MAX + 1];
snprintfz(old_filename, FILENAME_MAX, "%s.old", registry.db_filename);
snprintfz(tmp_filename, FILENAME_MAX, "%s.tmp", registry.db_filename);
debug(D_REGISTRY, "Registry: Creating file '%s'", tmp_filename);
Reported by FlawFinder.
Line: 122
Column: 16
CWE codes:
362
snprintfz(tmp_filename, FILENAME_MAX, "%s.tmp", registry.db_filename);
debug(D_REGISTRY, "Registry: Creating file '%s'", tmp_filename);
FILE *fp = fopen(tmp_filename, "w");
if(!fp) {
error("Registry: Cannot create file: %s", tmp_filename);
error_log_limit_reset();
return -1;
}
Reported by FlawFinder.
Line: 214
Column: 5
CWE codes:
119
120
Suggestion:
Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length
// LOAD THE REGISTRY DATABASE
size_t registry_db_load(void) {
char *s, buf[4096 + 1];
REGISTRY_PERSON *p = NULL;
REGISTRY_MACHINE *m = NULL;
REGISTRY_URL *u = NULL;
size_t line = 0;
Reported by FlawFinder.
Line: 221
Column: 16
CWE codes:
362
size_t line = 0;
debug(D_REGISTRY, "Registry: loading active db from: '%s'", registry.db_filename);
FILE *fp = fopen(registry.db_filename, "r");
if(!fp) {
error("Registry: cannot open registry file: '%s'", registry.db_filename);
return 0;
}
Reported by FlawFinder.
Line: 301
Column: 43
CWE codes:
126
*url++ = '\0';
// u = registry_url_allocate_nolock(url, strlen(url));
u = registry_url_get(url, strlen(url));
time_t first_t = strtoul(&s[2], NULL, 16);
m = registry_machine_find(&s[32]);
if(!m) m = registry_machine_allocate(&s[32], first_t);
Reported by FlawFinder.
Line: 308
Column: 89
CWE codes:
126
m = registry_machine_find(&s[32]);
if(!m) m = registry_machine_allocate(&s[32], first_t);
REGISTRY_PERSON_URL *pu = registry_person_url_allocate(p, m, u, &s[69], strlen(&s[69]), first_t);
pu->last_t = (uint32_t)strtoul(&s[11], NULL, 16);
pu->usages = (uint32_t)strtoul(&s[20], NULL, 16);
pu->flags = (uint8_t)strtoul(&s[29], NULL, 16);
debug(D_REGISTRY, "Registry loaded person URL '%s' with name '%s' of machine '%s', first: %u, last: %u, usages: %u, flags: %02x", u->url, pu->machine_name, m->guid, pu->first_t, pu->last_t, pu->usages, pu->flags);
break;
Reported by FlawFinder.
Line: 329
Column: 46
CWE codes:
126
s[1] = s[10] = s[19] = s[28] = s[31] = '\0';
// u = registry_url_allocate_nolock(&s[32], strlen(&s[32]));
u = registry_url_get(&s[32], strlen(&s[32]));
REGISTRY_MACHINE_URL *mu = registry_machine_url_allocate(m, u, strtoul(&s[2], NULL, 16));
mu->last_t = (uint32_t)strtoul(&s[11], NULL, 16);
mu->usages = (uint32_t)strtoul(&s[20], NULL, 16);
mu->flags = (uint8_t)strtoul(&s[29], NULL, 16);
Reported by FlawFinder.
database/engine/journalfile.c
8 issues
Line: 97
Column: 12
CWE codes:
134
Suggestion:
Use a constant for the format specification
void generate_journalfilepath(struct rrdengine_datafile *datafile, char *str, size_t maxlen)
{
(void) snprintf(str, maxlen, "%s/" WALFILE_PREFIX RRDENG_FILE_NUMBER_PRINT_TMPL WALFILE_EXTENSION,
datafile->ctx->dbfiles_path, datafile->tier, datafile->fileno);
}
void journalfile_init(struct rrdengine_journalfile *journalfile, struct rrdengine_datafile *datafile)
{
Reported by FlawFinder.
Line: 113
Column: 5
CWE codes:
119
120
Suggestion:
Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length
struct rrdengine_instance *ctx = datafile->ctx;
uv_fs_t req;
int ret;
char path[RRDENG_PATH_MAX];
generate_journalfilepath(datafile, path, sizeof(path));
ret = uv_fs_close(NULL, &req, journalfile->file, NULL);
if (ret < 0) {
Reported by FlawFinder.
Line: 134
Column: 5
CWE codes:
119
120
Suggestion:
Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length
struct rrdengine_instance *ctx = datafile->ctx;
uv_fs_t req;
int ret;
char path[RRDENG_PATH_MAX];
generate_journalfilepath(datafile, path, sizeof(path));
ret = uv_fs_unlink(NULL, &req, path, NULL);
if (ret < 0) {
Reported by FlawFinder.
Line: 156
Column: 5
CWE codes:
119
120
Suggestion:
Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length
struct rrdengine_instance *ctx = datafile->ctx;
uv_fs_t req;
int ret;
char path[RRDENG_PATH_MAX];
generate_journalfilepath(datafile, path, sizeof(path));
ret = uv_fs_ftruncate(NULL, &req, journalfile->file, 0, NULL);
if (ret < 0) {
Reported by FlawFinder.
Line: 197
Column: 5
CWE codes:
119
120
Suggestion:
Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length
int ret, fd;
struct rrdeng_jf_sb *superblock;
uv_buf_t iov;
char path[RRDENG_PATH_MAX];
generate_journalfilepath(datafile, path, sizeof(path));
fd = open_file_direct_io(path, O_CREAT | O_RDWR | O_TRUNC, &file);
if (fd < 0) {
++ctx->stats.fs_errors;
Reported by FlawFinder.
Line: 467
Column: 5
CWE codes:
119
120
Suggestion:
Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length
uv_file file;
int ret, fd, error;
uint64_t file_size, max_id;
char path[RRDENG_PATH_MAX];
generate_journalfilepath(datafile, path, sizeof(path));
fd = open_file_direct_io(path, O_RDWR, &file);
if (fd < 0) {
++ctx->stats.fs_errors;
Reported by FlawFinder.
Line: 213
Column: 12
CWE codes:
120
if (unlikely(ret)) {
fatal("posix_memalign:%s", strerror(ret));
}
(void) strncpy(superblock->magic_number, RRDENG_JF_MAGIC, RRDENG_MAGIC_SZ);
(void) strncpy(superblock->version, RRDENG_JF_VER, RRDENG_VER_SZ);
iov = uv_buf_init((void *)superblock, sizeof(*superblock));
ret = uv_fs_write(NULL, &req, file, &iov, 1, 0, NULL);
Reported by FlawFinder.
Line: 214
Column: 12
CWE codes:
120
fatal("posix_memalign:%s", strerror(ret));
}
(void) strncpy(superblock->magic_number, RRDENG_JF_MAGIC, RRDENG_MAGIC_SZ);
(void) strncpy(superblock->version, RRDENG_JF_VER, RRDENG_VER_SZ);
iov = uv_buf_init((void *)superblock, sizeof(*superblock));
ret = uv_fs_write(NULL, &req, file, &iov, 1, 0, NULL);
if (ret < 0) {
Reported by FlawFinder.
collectors/python.d.plugin/python_modules/urllib3/util/url.py
8 issues
Line: 5
Column: 1
from __future__ import absolute_import
from collections import namedtuple
from ..exceptions import LocationParseError
url_attrs = ['scheme', 'auth', 'host', 'port', 'path', 'query', 'fragment']
# We only want to normalize urls with an HTTP(S) scheme.
Reported by Pylint.
Line: 204
Column: 17
try:
port = int(port)
except ValueError:
raise LocationParseError(url)
else:
# Blank ports are cool, too. (rfc3986#section-3.2.3)
port = None
elif not host and url:
Reported by Pylint.
Line: 1
Column: 1
# SPDX-License-Identifier: MIT
from __future__ import absolute_import
from collections import namedtuple
from ..exceptions import LocationParseError
url_attrs = ['scheme', 'auth', 'host', 'port', 'path', 'query', 'fragment']
Reported by Pylint.
Line: 23
Column: 5
"""
__slots__ = ()
def __new__(cls, scheme=None, auth=None, host=None, port=None, path=None,
query=None, fragment=None):
if path and not path.startswith('/'):
path = '/' + path
if scheme:
scheme = scheme.lower()
Reported by Pylint.
Line: 100
Column: 1
return self.url
def split_first(s, delims):
"""
Given a string and an iterable of delimiters, split on the first found
delimiter. Return two split parts and the matched delimiter.
If not found, then the first part is the full input string.
Reported by Pylint.
Line: 118
Column: 9
"""
min_idx = None
min_delim = None
for d in delims:
idx = s.find(d)
if idx < 0:
continue
if min_idx is None or idx < min_idx:
Reported by Pylint.
Line: 133
Column: 1
return s[:min_idx], s[min_idx + 1:], min_delim
def parse_url(url):
"""
Given a url, return a parsed :class:`.Url` namedtuple. Best-effort is
performed to parse incomplete urls. Fields not provided will be None.
Partly backwards-compatible with :mod:`urlparse`.
Reported by Pylint.
Line: 230
Column: 5
"""
Deprecated. Use :func:`parse_url` instead.
"""
p = parse_url(url)
return p.scheme or 'http', p.hostname, p.port
Reported by Pylint.