The following issues were found
docs/examples/post-callback.c
2 issues
Line: 54
Column: 5
CWE codes:
120
Suggestion:
Make sure destination can always hold the source data
size_t copy_this_much = wt->sizeleft;
if(copy_this_much > buffer_size)
copy_this_much = buffer_size;
memcpy(dest, wt->readptr, copy_this_much);
wt->readptr += copy_this_much;
wt->sizeleft -= copy_this_much;
return copy_this_much; /* we copied this many bytes */
}
Reported by FlawFinder.
Line: 72
Column: 17
CWE codes:
126
struct WriteThis wt;
wt.readptr = data;
wt.sizeleft = strlen(data);
/* In windows, this will init the winsock stuff */
res = curl_global_init(CURL_GLOBAL_DEFAULT);
/* Check for errors */
if(res != CURLE_OK) {
Reported by FlawFinder.
tests/libtest/lib1512.c
2 issues
Line: 41
Column: 3
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
CURL *curl[NUM_HANDLES] = {NULL, NULL};
char *port = libtest_arg3;
char *address = libtest_arg2;
char dnsentry[256];
struct curl_slist *slist = NULL;
int i;
char target_url[256];
(void)URL; /* URL is setup in the code */
Reported by FlawFinder.
Line: 44
Column: 3
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 dnsentry[256];
struct curl_slist *slist = NULL;
int i;
char target_url[256];
(void)URL; /* URL is setup in the code */
if(curl_global_init(CURL_GLOBAL_ALL) != CURLE_OK) {
fprintf(stderr, "curl_global_init() failed\n");
return TEST_ERR_MAJOR_BAD;
Reported by FlawFinder.
tests/libtest/lib568.c
2 issues
Line: 79
Column: 9
CWE codes:
362
free(stream_uri);
stream_uri = NULL;
sdp = open("log/file568.txt", O_RDONLY);
fstat(sdp, &file_info);
close(sdp);
sdpf = fopen("log/file568.txt", "rb");
if(!sdpf) {
Reported by FlawFinder.
Line: 83
Column: 10
CWE codes:
362
fstat(sdp, &file_info);
close(sdp);
sdpf = fopen("log/file568.txt", "rb");
if(!sdpf) {
fprintf(stderr, "can't open log/file568.txt\n");
res = TEST_ERR_MAJOR_BAD;
goto test_cleanup;
}
Reported by FlawFinder.
tests/libtest/lib1515.c
2 issues
Line: 122
Column: 3
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 *address = libtest_arg2;
char *port = libtest_arg3;
char *path = URL;
char dns_entry[256];
int i;
int count = 2;
msnprintf(dns_entry, sizeof(dns_entry), "testserver.example.com:%s:%s",
port, address);
Reported by FlawFinder.
Line: 135
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
multi_init(multi);
for(i = 1; i <= count; i++) {
char target_url[256];
msnprintf(target_url, sizeof(target_url),
"http://testserver.example.com:%s/%s%04d", port, path, i);
/* second request must succeed like the first one */
res = do_one_request(multi, target_url, dns_entry);
Reported by FlawFinder.
tests/libtest/lib1517.c
2 issues
Line: 48
Column: 3
CWE codes:
120
Suggestion:
Make sure destination can always hold the source data
if(pooh->sizeleft < tocopy)
tocopy = pooh->sizeleft;
memcpy(ptr, pooh->readptr, tocopy);/* copy requested data */
pooh->readptr += tocopy; /* advance pointer */
pooh->sizeleft -= tocopy; /* less data left */
return tocopy;
}
Reported by FlawFinder.
Line: 62
Column: 19
CWE codes:
126
struct WriteThis pooh;
pooh.readptr = data;
pooh.sizeleft = strlen(data);
if(curl_global_init(CURL_GLOBAL_ALL)) {
fprintf(stderr, "curl_global_init() failed\n");
return TEST_ERR_MAJOR_BAD;
}
Reported by FlawFinder.
tests/libtest/lib572.c
2 issues
Line: 98
Column: 12
CWE codes:
362
stream_uri = NULL;
/* PUT style GET_PARAMETERS */
params = open("log/file572.txt", O_RDONLY);
fstat(params, &file_info);
close(params);
paramsf = fopen("log/file572.txt", "rb");
if(!paramsf) {
Reported by FlawFinder.
Line: 102
Column: 13
CWE codes:
362
fstat(params, &file_info);
close(params);
paramsf = fopen("log/file572.txt", "rb");
if(!paramsf) {
fprintf(stderr, "can't open log/file572.txt\n");
res = TEST_ERR_MAJOR_BAD;
goto test_cleanup;
}
Reported by FlawFinder.
tests/libtest/lib1520.c
2 issues
Line: 63
Column: 5
CWE codes:
120
Suggestion:
Make sure destination can always hold the source data
if(data) {
size_t len = strlen(data);
memcpy(ptr, data, len);
upload_ctx->lines_read++;
return len;
}
Reported by FlawFinder.
Line: 62
Column: 18
CWE codes:
126
data = payload_text[upload_ctx->lines_read];
if(data) {
size_t len = strlen(data);
memcpy(ptr, data, len);
upload_ctx->lines_read++;
return len;
}
Reported by FlawFinder.
lib/curl_gethostname.c
2 issues
Line: 67
Column: 32
CWE codes:
807
20
Suggestion:
Check environment variables carefully before using them
#ifdef DEBUGBUILD
/* Override host name when environment variable CURL_GETHOSTNAME is set */
const char *force_hostname = getenv("CURL_GETHOSTNAME");
if(force_hostname) {
strncpy(name, force_hostname, namelen);
err = 0;
}
else {
Reported by FlawFinder.
Line: 69
Column: 5
CWE codes:
120
/* Override host name when environment variable CURL_GETHOSTNAME is set */
const char *force_hostname = getenv("CURL_GETHOSTNAME");
if(force_hostname) {
strncpy(name, force_hostname, namelen);
err = 0;
}
else {
name[0] = '\0';
err = gethostname(name, namelen);
Reported by FlawFinder.
lib/hostcheck.c
2 issues
Line: 72
Column: 16
CWE codes:
126
size_t prefixlen, suffixlen;
/* normalize pattern and hostname by stripping off trailing dots */
size_t len = strlen(hostname);
if(hostname[len-1]=='.')
hostname[len-1] = 0;
len = strlen(pattern);
if(pattern[len-1]=='.')
pattern[len-1] = 0;
Reported by FlawFinder.
Line: 75
Column: 9
CWE codes:
126
size_t len = strlen(hostname);
if(hostname[len-1]=='.')
hostname[len-1] = 0;
len = strlen(pattern);
if(pattern[len-1]=='.')
pattern[len-1] = 0;
pattern_wildcard = strchr(pattern, '*');
if(!pattern_wildcard)
Reported by FlawFinder.
docs/examples/smtp-mail.c
2 issues
Line: 81
Column: 5
CWE codes:
120
Suggestion:
Make sure destination can always hold the source data
size_t len = strlen(data);
if(room < len)
len = room;
memcpy(ptr, data, len);
upload_ctx->bytes_read += len;
return len;
}
Reported by FlawFinder.
Line: 78
Column: 18
CWE codes:
126
data = &payload_text[upload_ctx->bytes_read];
if(data) {
size_t len = strlen(data);
if(room < len)
len = room;
memcpy(ptr, data, len);
upload_ctx->bytes_read += len;
Reported by FlawFinder.