The following issues were found
compat/regex/regex_internal.h
2 issues
Line: 697
char* re_str;
#endif
#if defined _LIBC
__libc_lock_define (, lock)
#endif
};
#define re_node_set_init_empty(set) memset (set, '\0', sizeof (re_node_set))
#define re_node_set_remove(set,id) \
Reported by Cppcheck.
Line: 188
Column: 31
CWE codes:
120
Suggestion:
Make sure destination can always hold the source data
(set[i / BITSET_WORD_BITS] & ((bitset_word_t) 1 << i % BITSET_WORD_BITS))
#define bitset_empty(set) memset (set, '\0', sizeof (bitset_t))
#define bitset_set_all(set) memset (set, '\xff', sizeof (bitset_t))
#define bitset_copy(dest,src) memcpy (dest, src, sizeof (bitset_t))
#define PREV_WORD_CONSTRAINT 0x0001
#define PREV_NOTWORD_CONSTRAINT 0x0002
#define NEXT_WORD_CONSTRAINT 0x0004
#define NEXT_NOTWORD_CONSTRAINT 0x0008
Reported by FlawFinder.
pack-bitmap-write.c
2 issues
Line: 40
Column: 11
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 progress *progress;
int show_progress;
unsigned char pack_checksum[GIT_MAX_RAWSZ];
};
static struct bitmap_writer writer;
void bitmap_writer_show_progress(int show)
Reported by FlawFinder.
Line: 675
Column: 2
CWE codes:
120
Suggestion:
Make sure destination can always hold the source data
f = hashfd(fd, tmp_file.buf);
memcpy(header.magic, BITMAP_IDX_SIGNATURE, sizeof(BITMAP_IDX_SIGNATURE));
header.version = htons(default_version);
header.options = htons(flags | options);
header.entry_count = htonl(writer.selected_nr);
hashcpy(header.checksum, writer.pack_checksum);
Reported by FlawFinder.
compat/strlcpy.c
2 issues
Line: 9
Column: 3
CWE codes:
120
Suggestion:
Make sure destination can always hold the source data
if (size) {
size_t len = (ret >= size) ? size - 1 : ret;
memcpy(dest, src, len);
dest[len] = '\0';
}
return ret;
}
Reported by FlawFinder.
Line: 5
Column: 15
CWE codes:
126
size_t gitstrlcpy(char *dest, const char *src, size_t size)
{
size_t ret = strlen(src);
if (size) {
size_t len = (ret >= size) ? size - 1 : ret;
memcpy(dest, src, len);
dest[len] = '\0';
Reported by FlawFinder.
apply.h
2 issues
Line: 147
Column: 2
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 fragment *fragments;
char *result;
size_t resultsize;
char old_oid_prefix[GIT_MAX_HEXSZ + 1];
char new_oid_prefix[GIT_MAX_HEXSZ + 1];
struct patch *next;
/* three-way fallback result */
struct object_id threeway_stage[3];
Reported by FlawFinder.
Line: 148
Column: 2
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 *result;
size_t resultsize;
char old_oid_prefix[GIT_MAX_HEXSZ + 1];
char new_oid_prefix[GIT_MAX_HEXSZ + 1];
struct patch *next;
/* three-way fallback result */
struct object_id threeway_stage[3];
};
Reported by FlawFinder.
builtin/merge-file.c
2 issues
Line: 28
Column: 8
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 cmd_merge_file(int argc, const char **argv, const char *prefix)
{
const char *names[3] = { NULL, NULL, NULL };
mmfile_t mmfs[3];
mmbuffer_t result = {NULL, 0};
xmparam_t xmp = {{0}};
int ret = 0, i = 0, to_stdout = 0;
int quiet = 0;
Reported by FlawFinder.
Line: 100
Column: 34
CWE codes:
362
if (ret >= 0) {
const char *filename = argv[0];
char *fpath = prefix_filename(prefix, argv[0]);
FILE *f = to_stdout ? stdout : fopen(fpath, "wb");
if (!f)
ret = error_errno("Could not open %s for writing",
filename);
else if (result.size &&
Reported by FlawFinder.
pack-bitmap.h
2 issues
Line: 18
Column: 2
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
static const char BITMAP_IDX_SIGNATURE[] = {'B', 'I', 'T', 'M'};
struct bitmap_disk_header {
char magic[ARRAY_SIZE(BITMAP_IDX_SIGNATURE)];
uint16_t version;
uint16_t options;
uint32_t entry_count;
unsigned char checksum[GIT_MAX_RAWSZ];
};
Reported by FlawFinder.
Line: 22
Column: 11
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
uint16_t version;
uint16_t options;
uint32_t entry_count;
unsigned char checksum[GIT_MAX_RAWSZ];
};
#define NEEDS_BITMAP (1u<<22)
enum pack_bitmap_opts {
Reported by FlawFinder.
compat/strcasestr.c
2 issues
Line: 5
Column: 13
CWE codes:
126
char *gitstrcasestr(const char *haystack, const char *needle)
{
int nlen = strlen(needle);
int hlen = strlen(haystack) - nlen + 1;
int i;
for (i = 0; i < hlen; i++) {
int j;
Reported by FlawFinder.
Line: 6
Column: 13
CWE codes:
126
char *gitstrcasestr(const char *haystack, const char *needle)
{
int nlen = strlen(needle);
int hlen = strlen(haystack) - nlen + 1;
int i;
for (i = 0; i < hlen; i++) {
int j;
for (j = 0; j < nlen; j++) {
Reported by FlawFinder.
string-list.c
2 issues
Line: 7
Column: 2
CWE codes:
120
Suggestion:
Make sure destination can always hold the source data
void string_list_init_nodup(struct string_list *list)
{
struct string_list blank = STRING_LIST_INIT_NODUP;
memcpy(list, &blank, sizeof(*list));
}
void string_list_init_dup(struct string_list *list)
{
struct string_list blank = STRING_LIST_INIT_DUP;
Reported by FlawFinder.
Line: 13
Column: 2
CWE codes:
120
Suggestion:
Make sure destination can always hold the source data
void string_list_init_dup(struct string_list *list)
{
struct string_list blank = STRING_LIST_INIT_DUP;
memcpy(list, &blank, sizeof(*list));
}
void string_list_init(struct string_list *list, int strdup_strings)
{
if (strdup_strings)
Reported by FlawFinder.
levenshtein.c
2 issues
Line: 44
Column: 37
CWE codes:
126
int levenshtein(const char *string1, const char *string2,
int w, int s, int a, int d)
{
int len1 = strlen(string1), len2 = strlen(string2);
int *row0, *row1, *row2;
int i, j;
ALLOC_ARRAY(row0, len2 + 1);
ALLOC_ARRAY(row1, len2 + 1);
Reported by FlawFinder.
Line: 44
Column: 13
CWE codes:
126
int levenshtein(const char *string1, const char *string2,
int w, int s, int a, int d)
{
int len1 = strlen(string1), len2 = strlen(string2);
int *row0, *row1, *row2;
int i, j;
ALLOC_ARRAY(row0, len2 + 1);
ALLOC_ARRAY(row1, len2 + 1);
Reported by FlawFinder.
compat/strdup.c
2 issues
Line: 9
Column: 3
CWE codes:
120
Suggestion:
Make sure destination can always hold the source data
char *s2 = malloc(len);
if (s2)
memcpy(s2, s1, len);
return s2;
}
Reported by FlawFinder.
Line: 5
Column: 15
CWE codes:
126
char *gitstrdup(const char *s1)
{
size_t len = strlen(s1) + 1;
char *s2 = malloc(len);
if (s2)
memcpy(s2, s1, len);
return s2;
Reported by FlawFinder.