Flawfinder version 2.0.10, (C) 2001-2019 David A. Wheeler. Number of rules (primarily dangerous function names) in C/C++ ruleset: 223 Examining data/libytnef-1.9.3/lib/mapi.h Examining data/libytnef-1.9.3/lib/mapidefs.h Examining data/libytnef-1.9.3/lib/mapitags.h Examining data/libytnef-1.9.3/lib/tnef-errors.h Examining data/libytnef-1.9.3/lib/tnef-types.h Examining data/libytnef-1.9.3/lib/ytnef.c Examining data/libytnef-1.9.3/lib/ytnef.h Examining data/libytnef-1.9.3/ytnef/main.c Examining data/libytnef-1.9.3/ytnef/settings.c Examining data/libytnef-1.9.3/ytnef/settings.h Examining data/libytnef-1.9.3/ytnef/utility.c Examining data/libytnef-1.9.3/ytnef/vcal.c Examining data/libytnef-1.9.3/ytnef/vcard.c Examining data/libytnef-1.9.3/ytnef/vtask.c Examining data/libytnef-1.9.3/ytnefprint/main.c FINAL RESULTS: data/libytnef-1.9.3/lib/ytnef.c:40:13: [4] (format) printf: If format strings can be influenced by an attacker, they can be exploited (CWE-134). Use a constant for the format specification. printf(msg, var1); \ data/libytnef-1.9.3/lib/ytnef.c:46:13: [4] (format) printf: If format strings can be influenced by an attacker, they can be exploited (CWE-134). Use a constant for the format specification. printf(msg, var1, var2); \ data/libytnef-1.9.3/lib/ytnef.c:52:13: [4] (format) printf: If format strings can be influenced by an attacker, they can be exploited (CWE-134). Use a constant for the format specification. printf(msg, var1, var2,var3); \ data/libytnef-1.9.3/ytnef/main.c:44:3: [4] (format) printf: If format strings can be influenced by an attacker, they can be exploited (CWE-134). Use a constant for the format specification. printf(VERSION); data/libytnef-1.9.3/ytnef/main.c:65:3: [4] (format) printf: If format strings can be influenced by an attacker, they can be exploited (CWE-134). Use a constant for the format specification. printf(PACKAGE_BUGREPORT); data/libytnef-1.9.3/ytnef/main.c:193:13: [4] (buffer) strcpy: Does not check for buffer overflows when copying to destination [MS-banned] (CWE-120). Consider using snprintf, strcpy_s, or strlcpy (warning: strncpy easily misused). strcpy(ifilename, tmp); data/libytnef-1.9.3/ytnef/utility.c:32:9: [4] (format) fprintf: If format strings can be influenced by an attacker, they can be exploited (CWE-134). Use a constant for the format specification. fprintf(FPTR, TEXT, vl->data); data/libytnef-1.9.3/ytnef/utility.c:46:9: [4] (format) fprintf: If format strings can be influenced by an attacker, they can be exploited (CWE-134). Use a constant for the format specification. fprintf(FPTR, TEXT, vl->data); data/libytnef-1.9.3/ytnef/vcal.c:243:5: [4] (format) fprintf: If format strings can be influenced by an attacker, they can be exploited (CWE-134). Use a constant for the format specification. fprintf(fptr, PRODID); data/libytnef-1.9.3/ytnef/vtask.c:58:5: [4] (format) fprintf: If format strings can be influenced by an attacker, they can be exploited (CWE-134). Use a constant for the format specification. fprintf(fptr, PRODID); data/libytnef-1.9.3/ytnefprint/main.c:40:3: [4] (format) printf: If format strings can be influenced by an attacker, they can be exploited (CWE-134). Use a constant for the format specification. printf(VERSION); data/libytnef-1.9.3/ytnefprint/main.c:51:3: [4] (format) printf: If format strings can be influenced by an attacker, they can be exploited (CWE-134). Use a constant for the format specification. printf(PACKAGE_BUGREPORT); data/libytnef-1.9.3/lib/mapitags.h:27:3: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char name[128]; data/libytnef-1.9.3/lib/tnef-types.h:106:3: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char version[16]; data/libytnef-1.9.3/lib/tnef-types.h:111:3: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char messageStatus[10]; data/libytnef-1.9.3/lib/tnef-types.h:112:3: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char messageClass[50]; data/libytnef-1.9.3/lib/tnef-types.h:113:3: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char messageID[50]; data/libytnef-1.9.3/lib/tnef-types.h:114:3: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char parentID[50]; data/libytnef-1.9.3/lib/tnef-types.h:115:3: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char conversationID[50]; data/libytnef-1.9.3/lib/tnef-types.h:117:3: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char priority[10]; data/libytnef-1.9.3/lib/ytnef.c:256:3: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(TNEF->CodePage.data, data, size); data/libytnef-1.9.3/lib/ytnef.c:276:3: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(TNEF->body.data, data, size); data/libytnef-1.9.3/lib/ytnef.c:285:3: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(TNEF->OriginalMessageClass.data, data, size); data/libytnef-1.9.3/lib/ytnef.c:299:3: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(TNEF->from.data, data, size); data/libytnef-1.9.3/lib/ytnef.c:311:3: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(TNEF->subject.data, data, size); data/libytnef-1.9.3/lib/ytnef.c:330:3: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(&(p->RenderData), data, correct); data/libytnef-1.9.3/lib/ytnef.c:356:3: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(p->IconData.data, data, size); data/libytnef-1.9.3/lib/ytnef.c:448:9: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(&(mp->guid[0]), d, 16); data/libytnef-1.9.3/lib/ytnef.c:531:13: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(vl->data, d, vl->size); data/libytnef-1.9.3/lib/ytnef.c:551:9: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(vl->data, &temp_word, vl->size); data/libytnef-1.9.3/lib/ytnef.c:566:9: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(vl->data, &temp_dword, vl->size); data/libytnef-1.9.3/lib/ytnef.c:578:9: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(vl->data, &temp_ddword, vl->size); data/libytnef-1.9.3/lib/ytnef.c:587:9: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(vl->data, d, vl->size); data/libytnef-1.9.3/lib/ytnef.c:609:11: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(TNEF->subject.data, vl->data, vl->size); data/libytnef-1.9.3/lib/ytnef.c:716:3: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char days[7][15] = {"Sunday", "Monday", "Tuesday", data/libytnef-1.9.3/lib/ytnef.c:719:3: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char months[12][15] = {"January", "February", "March", "April", "May", data/libytnef-1.9.3/lib/ytnef.c:783:3: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(p->Title.data, data, size); data/libytnef-1.9.3/lib/ytnef.c:798:3: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(p->FileData.data, data, size); data/libytnef-1.9.3/lib/ytnef.c:810:7: [2] (buffer) sprintf: Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or vsnprintf. Risk is low because the source has a constant maximum length. sprintf((TNEF->priority), "high"); data/libytnef-1.9.3/lib/ytnef.c:813:7: [2] (buffer) sprintf: Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or vsnprintf. Risk is low because the source has a constant maximum length. sprintf((TNEF->priority), "normal"); data/libytnef-1.9.3/lib/ytnef.c:816:7: [2] (buffer) sprintf: Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or vsnprintf. Risk is low because the source has a constant maximum length. sprintf((TNEF->priority), "low"); data/libytnef-1.9.3/lib/ytnef.c:819:7: [2] (buffer) sprintf: Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or vsnprintf. Risk is low because the source has a constant maximum length. sprintf((TNEF->priority), "N/A"); data/libytnef-1.9.3/lib/ytnef.c:1026:22: [2] (misc) fopen: Check when opening files - can an attacker redirect it (via symlinks), force the opening of special file type (e.g., device files), move things around to create a race condition, control its ancestors, or change its contents? (CWE-362). if ((finfo->fptr = fopen(finfo->filename, "rb")) == NULL) { data/libytnef-1.9.3/lib/ytnef.c:1097:3: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(dest, minfo->ptr, length); data/libytnef-1.9.3/lib/ytnef.c:1524:3: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(comp_Prebuf.data, RTF_PREBUF, comp_Prebuf.size); data/libytnef-1.9.3/lib/ytnef.c:1552:5: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(dst, src + 4, uncompressedSize); data/libytnef-1.9.3/lib/ytnef.c:1564:5: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(dst, comp_Prebuf.data, comp_Prebuf.size); data/libytnef-1.9.3/lib/ytnef.c:1602:5: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(dst, src + comp_Prebuf.size, uncompressedSize); data/libytnef-1.9.3/lib/ytnef.h:115:3: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char name[40]; data/libytnef-1.9.3/ytnef/main.c:144:3: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char ifilename[MAX_FILENAME_SIZE+1]; data/libytnef-1.9.3/ytnef/main.c:191:13: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char tmp[MAX_FILENAME_SIZE+1]; data/libytnef-1.9.3/ytnef/main.c:196:23: [2] (misc) fopen: Check when opening files - can an attacker redirect it (via symlinks), force the opening of special file type (e.g., device files), move things around to create a race condition, control its ancestors, or change its contents? (CWE-362). if ((fptr = fopen(ifilename, "wb")) == NULL) { data/libytnef-1.9.3/ytnef/main.c:231:7: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char fileNameBase[32]; data/libytnef-1.9.3/ytnef/main.c:238:23: [2] (misc) fopen: Check when opening files - can an attacker redirect it (via symlinks), force the opening of special file type (e.g., device files), move things around to create a race condition, control its ancestors, or change its contents? (CWE-362). if ((fptr = fopen(ifilename, "wb"))==NULL) { data/libytnef-1.9.3/ytnef/main.c:285:9: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(&signature, filedata->data + 16, sizeof(DWORD)); data/libytnef-1.9.3/ytnef/main.c:300:9: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(&signature, filedata->data, sizeof(DWORD)); data/libytnef-1.9.3/ytnef/main.c:340:11: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char tmp[MAX_FILENAME_SIZE]; data/libytnef-1.9.3/ytnef/main.c:341:11: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(tmp, ifilename, MAX_FILENAME_SIZE); data/libytnef-1.9.3/ytnef/main.c:345:23: [2] (misc) fopen: Check when opening files - can an attacker redirect it (via symlinks), force the opening of special file type (e.g., device files), move things around to create a race condition, control its ancestors, or change its contents? (CWE-362). if ((fptr = fopen(ifilename, "wb")) == NULL) { data/libytnef-1.9.3/ytnef/settings.c:57:18: [2] (misc) fopen: Check when opening files - can an attacker redirect it (via symlinks), force the opening of special file type (e.g., device files), move things around to create a race condition, control its ancestors, or change its contents? (CWE-362). if ((check = fopen(output, "r")) == NULL) { data/libytnef-1.9.3/ytnef/vcal.c:97:10: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. static char daystring[25]; data/libytnef-1.9.3/ytnef/vcal.c:102:5: [2] (buffer) strcat: Does not check for buffer overflows when concatenating to destination [MS-banned] (CWE-120). Consider using strcat_s, strncat, strlcat, or snprintf (warning: strncat is easily misused). Risk is low because the source is a constant string. strcat(daystring, "SU,"); data/libytnef-1.9.3/ytnef/vcal.c:105:5: [2] (buffer) strcat: Does not check for buffer overflows when concatenating to destination [MS-banned] (CWE-120). Consider using strcat_s, strncat, strlcat, or snprintf (warning: strncat is easily misused). Risk is low because the source is a constant string. strcat(daystring, "MO,"); data/libytnef-1.9.3/ytnef/vcal.c:108:5: [2] (buffer) strcat: Does not check for buffer overflows when concatenating to destination [MS-banned] (CWE-120). Consider using strcat_s, strncat, strlcat, or snprintf (warning: strncat is easily misused). Risk is low because the source is a constant string. strcat(daystring, "TU,"); data/libytnef-1.9.3/ytnef/vcal.c:111:5: [2] (buffer) strcat: Does not check for buffer overflows when concatenating to destination [MS-banned] (CWE-120). Consider using strcat_s, strncat, strlcat, or snprintf (warning: strncat is easily misused). Risk is low because the source is a constant string. strcat(daystring, "WE,"); data/libytnef-1.9.3/ytnef/vcal.c:114:5: [2] (buffer) strcat: Does not check for buffer overflows when concatenating to destination [MS-banned] (CWE-120). Consider using strcat_s, strncat, strlcat, or snprintf (warning: strncat is easily misused). Risk is low because the source is a constant string. strcat(daystring, "TH,"); data/libytnef-1.9.3/ytnef/vcal.c:117:5: [2] (buffer) strcat: Does not check for buffer overflows when concatenating to destination [MS-banned] (CWE-120). Consider using strcat_s, strncat, strlcat, or snprintf (warning: strncat is easily misused). Risk is low because the source is a constant string. strcat(daystring, "FR,"); data/libytnef-1.9.3/ytnef/vcal.c:120:5: [2] (buffer) strcat: Does not check for buffer overflows when concatenating to destination [MS-banned] (CWE-120). Consider using strcat_s, strncat, strlcat, or snprintf (warning: strncat is easily misused). Risk is low because the source is a constant string. strcat(daystring, "SA,"); data/libytnef-1.9.3/ytnef/vcal.c:204:3: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char ifilename[MAX_FILENAME_SIZE]; data/libytnef-1.9.3/ytnef/vcal.c:222:15: [2] (misc) fopen: Check when opening files - can an attacker redirect it (via symlinks), force the opening of special file type (e.g., device files), move things around to create a race condition, control its ancestors, or change its contents? (CWE-362). if ((fptr = fopen(ifilename, "wb")) == NULL) { data/libytnef-1.9.3/ytnef/vcard.c:23:3: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char ifilename[MAX_FILENAME_SIZE]; data/libytnef-1.9.3/ytnef/vcard.c:47:5: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char temp[MAX_FILENAME_SIZE]; data/libytnef-1.9.3/ytnef/vcard.c:48:5: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(temp, ifilename, MAX_FILENAME_SIZE); data/libytnef-1.9.3/ytnef/vcard.c:55:15: [2] (misc) fopen: Check when opening files - can an attacker redirect it (via symlinks), force the opening of special file type (e.g., device files), move things around to create a race condition, control its ancestors, or change its contents? (CWE-362). if ((fptr = fopen(ifilename, "wb")) == NULL) { data/libytnef-1.9.3/ytnef/vtask.c:26:3: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char ifilename[MAX_FILENAME_SIZE]; data/libytnef-1.9.3/ytnef/vtask.c:46:5: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char temp[MAX_FILENAME_SIZE]; data/libytnef-1.9.3/ytnef/vtask.c:47:5: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(temp, ifilename, MAX_FILENAME_SIZE); data/libytnef-1.9.3/ytnef/vtask.c:54:15: [2] (misc) fopen: Check when opening files - can an attacker redirect it (via symlinks), force the opening of special file type (e.g., device files), move things around to create a race condition, control its ancestors, or change its contents? (CWE-362). if ((fptr = fopen(ifilename, "wb")) == NULL) { data/libytnef-1.9.3/ytnefprint/main.c:94:3: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char ifilename[1024]; data/libytnef-1.9.3/lib/ytnef.c:1467:15: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). if (strlen((char*)mapidata->data) != mapidata->size - 1) { data/libytnef-1.9.3/lib/ytnef.c:1521:22: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). comp_Prebuf.size = strlen(RTF_PREBUF); data/libytnef-1.9.3/ytnef/main.c:232:7: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy(fileNameBase, (char*)filename->data, sizeof(fileNameBase) - 1); data/libytnef-1.9.3/ytnef/main.c:336:24: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). for(i = 0; i < strlen(ifilename); i++) data/libytnef-1.9.3/ytnef/settings.c:30:19: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). for (i = 0; i < strlen(filename); ++i) { data/libytnef-1.9.3/ytnef/utility.c:68:27: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). for (index = 0; index < strlen((char*)VL->data); index++) { data/libytnef-1.9.3/ytnef/utility.c:95:3: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy(link, bgn, size); data/libytnef-1.9.3/ytnef/utility.c:121:5: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy(text, bgn, size); data/libytnef-1.9.3/ytnef/vcal.c:123:7: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). if (strlen(daystring)) { data/libytnef-1.9.3/ytnef/vcal.c:124:15: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). daystring[strlen(daystring) - 1] = 0; data/libytnef-1.9.3/ytnef/vcal.c:311:11: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). if (strlen((char*)filename->data) > 1) { data/libytnef-1.9.3/ytnef/vcal.c:340:13: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). if (strlen((char*)filename->data) > 1) { data/libytnef-1.9.3/ytnef/vcal.c:369:13: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). if (strlen((char*)filename->data) > 1) { data/libytnef-1.9.3/ytnef/vtask.c:39:11: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). index = strlen((char*)vl->data); data/libytnef-1.9.3/ytnefprint/main.c:251:23: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). for (i = 0; i < strlen(ifilename); i++) ANALYSIS SUMMARY: Hits = 94 Lines analyzed = 4847 in approximately 0.15 seconds (32847 lines/second) Physical Source Lines of Code (SLOC) = 4037 Hits@level = [0] 362 [1] 15 [2] 67 [3] 0 [4] 12 [5] 0 Hits@level+ = [0+] 456 [1+] 94 [2+] 79 [3+] 12 [4+] 12 [5+] 0 Hits/KSLOC@level+ = [0+] 112.955 [1+] 23.2846 [2+] 19.569 [3+] 2.9725 [4+] 2.9725 [5+] 0 Dot directories skipped = 1 (--followdotdir overrides) Minimum risk level = 1 Not every hit is necessarily a security vulnerability. There may be other security vulnerabilities; review your code! See 'Secure Programming HOWTO' (https://dwheeler.com/secure-programs) for more information.