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/nikwi-0.0.20120213/src/nikwi/motion.h Examining data/nikwi-0.0.20120213/src/nikwi/nikwi.h Examining data/nikwi-0.0.20120213/src/nikwi/sound.h Examining data/nikwi-0.0.20120213/src/nikwi/editor.h Examining data/nikwi-0.0.20120213/src/nikwi/nikio.h Examining data/nikwi-0.0.20120213/src/nikwi/imageScreen.cpp Examining data/nikwi-0.0.20120213/src/nikwi/game.h Examining data/nikwi-0.0.20120213/src/nikwi/menu.h Examining data/nikwi-0.0.20120213/src/nikwi/imageScreen.h Examining data/nikwi-0.0.20120213/src/nikwi/screens.cpp Examining data/nikwi-0.0.20120213/src/nikwi/utils.cpp Examining data/nikwi-0.0.20120213/src/nikwi/ending.h Examining data/nikwi-0.0.20120213/src/nikwi/menu.cpp Examining data/nikwi-0.0.20120213/src/nikwi/transitions.h Examining data/nikwi-0.0.20120213/src/nikwi/transitions.cpp Examining data/nikwi-0.0.20120213/src/nikwi/editor.cpp Examining data/nikwi-0.0.20120213/src/nikwi/osx/SDLMain.h Examining data/nikwi-0.0.20120213/src/nikwi/sprites.cpp Examining data/nikwi-0.0.20120213/src/nikwi/game.cpp Examining data/nikwi-0.0.20120213/src/nikwi/sound.cpp Examining data/nikwi-0.0.20120213/src/nikwi/motion.cpp Examining data/nikwi-0.0.20120213/src/nikwi/objects.h Examining data/nikwi-0.0.20120213/src/nikwi/sprites.h Examining data/nikwi-0.0.20120213/src/nikwi/tiles.h Examining data/nikwi-0.0.20120213/src/nikwi/world.h Examining data/nikwi-0.0.20120213/src/nikwi/screens.h Examining data/nikwi-0.0.20120213/src/nikwi/utils.h Examining data/nikwi-0.0.20120213/src/nikwi/tiles.cpp Examining data/nikwi-0.0.20120213/src/nikwi/ending.cpp Examining data/nikwi-0.0.20120213/src/nikwi/objects.cpp Examining data/nikwi-0.0.20120213/src/nikwi/gfx.h Examining data/nikwi-0.0.20120213/src/nikwi/main.cpp Examining data/nikwi-0.0.20120213/src/nikwi/gfx.cpp Examining data/nikwi-0.0.20120213/src/nikwi/nikio.cpp Examining data/nikwi-0.0.20120213/src/nikwi/world.cpp Examining data/nikwi-0.0.20120213/src/us/vm.cpp Examining data/nikwi-0.0.20120213/src/us/consts.cpp Examining data/nikwi-0.0.20120213/src/us/script.cpp Examining data/nikwi-0.0.20120213/src/us/compiler.cpp Examining data/nikwi-0.0.20120213/src/us/uscript.cpp Examining data/nikwi-0.0.20120213/src/us/uscript/uscript.h Examining data/nikwi-0.0.20120213/src/us/uscript/funcs.h Examining data/nikwi-0.0.20120213/src/us/uscript/bytecode.h Examining data/nikwi-0.0.20120213/src/us/uscript/script.h Examining data/nikwi-0.0.20120213/src/us/uscript/consts.h Examining data/nikwi-0.0.20120213/src/us/uscript/compiler.h Examining data/nikwi-0.0.20120213/src/us/uscript/utils.h Examining data/nikwi-0.0.20120213/src/us/uscript/type.h Examining data/nikwi-0.0.20120213/src/us/uscript/vm.h Examining data/nikwi-0.0.20120213/src/us/funcs.cpp Examining data/nikwi-0.0.20120213/src/us/type.cpp Examining data/nikwi-0.0.20120213/src/us/bytecode.cpp Examining data/nikwi-0.0.20120213/src/tools/bmp2ut/bmp2ut.c Examining data/nikwi-0.0.20120213/src/tools/upack/upack.c Examining data/nikwi-0.0.20120213/src/slashtdp/world.cpp Examining data/nikwi-0.0.20120213/src/slashtdp/body.cpp Examining data/nikwi-0.0.20120213/src/slashtdp/slashtdp/slashtdp.h Examining data/nikwi-0.0.20120213/src/slashfx/slashfx.h Examining data/nikwi-0.0.20120213/src/slashfx/main.c Examining data/nikwi-0.0.20120213/src/badcfg/badcfg.h Examining data/nikwi-0.0.20120213/src/badcfg/main.c FINAL RESULTS: data/nikwi-0.0.20120213/src/badcfg/main.c:33:2: [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(newStr, string); data/nikwi-0.0.20120213/src/nikwi/objects.cpp:542:2: [4] (buffer) sprintf: Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or vsnprintf. sprintf(file, "data/scripts/%s.txt", name); data/nikwi-0.0.20120213/src/nikwi/sound.cpp:99:3: [4] (buffer) sprintf: Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or vsnprintf. sprintf(file, "data/audio/%s.ssfx", smp->value); data/nikwi-0.0.20120213/src/nikwi/sprites.cpp:270:5: [4] (buffer) sprintf: Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or vsnprintf. sprintf(buff, "data/%s/%s.ut", dir->value, data/nikwi-0.0.20120213/src/nikwi/sprites.cpp:279:4: [4] (buffer) sprintf: Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or vsnprintf. sprintf(buff, "data/%s/%s.ut", dir->value, spr->value); data/nikwi-0.0.20120213/src/tools/bmp2ut/bmp2ut.c:186:3: [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(output, input); data/nikwi-0.0.20120213/src/tools/bmp2ut/bmp2ut.c:202:3: [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(maskfn, input); data/nikwi-0.0.20120213/src/tools/bmp2ut/bmp2ut.c:208:5: [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(tmp2, maskfn); data/nikwi-0.0.20120213/src/tools/bmp2ut/bmp2ut.c:210:5: [4] (buffer) sprintf: Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or vsnprintf. sprintf(tmp, "%s_mask%s", tmp2, maskfn + i); data/nikwi-0.0.20120213/src/tools/upack/upack.c:170:3: [4] (buffer) sprintf: Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or vsnprintf. sprintf(spath, "%s/%s", path, dirname); data/nikwi-0.0.20120213/src/tools/upack/upack.c:172:3: [4] (buffer) sprintf: Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or vsnprintf. sprintf(spath, "%s", dirname); data/nikwi-0.0.20120213/src/tools/upack/upack.c:187:4: [4] (buffer) sprintf: Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or vsnprintf. sprintf(buff, "%s/%s", spath, de->d_name); data/nikwi-0.0.20120213/src/us/compiler.cpp:87:2: [4] (format) vsprintf: Potential format string problem (CWE-134). Make format string constant. vsprintf(buffer, errorString, ap); data/nikwi-0.0.20120213/src/badcfg/main.c:53:9: [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 token[16384]; data/nikwi-0.0.20120213/src/badcfg/main.c:153:13: [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). FILE *f = fopen(fileName, "rb"); data/nikwi-0.0.20120213/src/nikwi/editor.cpp:47:2: [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 buff[32]; data/nikwi-0.0.20120213/src/nikwi/editor.cpp:48:2: [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(buff, "data/worlds/world%i.w", aWorld); data/nikwi-0.0.20120213/src/nikwi/editor.cpp:52:2: [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(buff, "Editing world #%i", aWorld); data/nikwi-0.0.20120213/src/nikwi/editor.cpp:63:2: [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 buff[32]; data/nikwi-0.0.20120213/src/nikwi/editor.cpp:64:2: [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(buff, "data/worlds/world%i.w", aWorld); data/nikwi-0.0.20120213/src/nikwi/game.cpp:127:2: [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 buff[32]; data/nikwi-0.0.20120213/src/nikwi/game.cpp:130:2: [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(buff, "data/worlds/world%i.w", level); data/nikwi-0.0.20120213/src/nikwi/game.cpp:202: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 bufi[64]; data/nikwi-0.0.20120213/src/nikwi/game.cpp:203:3: [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(bufi,"level: %im:%is total: %im:%is", data/nikwi-0.0.20120213/src/nikwi/game.h:51:2: [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 *levelPwd[32]; data/nikwi-0.0.20120213/src/nikwi/main.cpp:211:17: [2] (integer) atoi: Unless checked, the resulting number can exceed the expected range (CWE-190). If source untrusted, check both minimum and maximum, even if the input had no minus sign (large numbers can roll over into negative number; consider saving to an unsigned value if that is intended). startLevel = atoi(argv[++i]); data/nikwi-0.0.20120213/src/nikwi/menu.h:37:2: [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 pwd[7]; data/nikwi-0.0.20120213/src/nikwi/nikio.cpp:62:6: [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). f = fopen(DATADIR "/justdata.up", "rb"); data/nikwi-0.0.20120213/src/nikwi/nikio.cpp:66:7: [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). f = fopen(DATADIR "/justdata.sw", "rb"); data/nikwi-0.0.20120213/src/nikwi/nikio.cpp:121:12: [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). FILE *f = fopen(packFileName, "rb"); data/nikwi-0.0.20120213/src/nikwi/nikio.cpp:132:12: [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). FILE *f = fopen(file, "rb"); data/nikwi-0.0.20120213/src/nikwi/objects.cpp:536:2: [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 file[1024]; data/nikwi-0.0.20120213/src/nikwi/sprites.cpp:83: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(image->pixels, localCopy, image->w*image->h*2); data/nikwi-0.0.20120213/src/nikwi/sprites.cpp:242:2: [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(frame->localCopy, surf->pixels, surf->w*surf->h*2); data/nikwi-0.0.20120213/src/nikwi/sprites.cpp:251:2: [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 buff[16384]; data/nikwi-0.0.20120213/src/nikwi/sprites.cpp:258:19: [2] (integer) atoi: Unless checked, the resulting number can exceed the expected range (CWE-190). If source untrusted, check both minimum and maximum, even if the input had no minus sign (large numbers can roll over into negative number; consider saving to an unsigned value if that is intended). sprite->delay = atoi(getBadCFGValue(spr, "delay", "1")); data/nikwi-0.0.20120213/src/nikwi/sprites.cpp:259:21: [2] (integer) atoi: Unless checked, the resulting number can exceed the expected range (CWE-190). If source untrusted, check both minimum and maximum, even if the input had no minus sign (large numbers can roll over into negative number; consider saving to an unsigned value if that is intended). sprite->offsetX = atoi(getBadCFGValue(spr, "offsetX", "0")); data/nikwi-0.0.20120213/src/nikwi/sprites.cpp:260:21: [2] (integer) atoi: Unless checked, the resulting number can exceed the expected range (CWE-190). If source untrusted, check both minimum and maximum, even if the input had no minus sign (large numbers can roll over into negative number; consider saving to an unsigned value if that is intended). sprite->offsetY = atoi(getBadCFGValue(spr, "offsetY", "0")); data/nikwi-0.0.20120213/src/nikwi/sprites.cpp:287:18: [2] (integer) atoi: Unless checked, the resulting number can exceed the expected range (CWE-190). If source untrusted, check both minimum and maximum, even if the input had no minus sign (large numbers can roll over into negative number; consider saving to an unsigned value if that is intended). sprite->by1 += atoi(getBadCFGValue(spr, "collTop", "0")); data/nikwi-0.0.20120213/src/nikwi/transitions.cpp:51:2: [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(target, screen->pixels, screen->pitch*screen->h); data/nikwi-0.0.20120213/src/nikwi/transitions.cpp:83:2: [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(screen->pixels, screen1, screen->h*screen->pitch); data/nikwi-0.0.20120213/src/nikwi/transitions.cpp:115: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(&screen1[y*pitch1], &screen2[y*pitch2], 12800); data/nikwi-0.0.20120213/src/nikwi/transitions.cpp:140:4: [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(&screen1[(yy*10+y)*pitch1], data/nikwi-0.0.20120213/src/nikwi/transitions.cpp:167: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(dst, line, w); data/nikwi-0.0.20120213/src/nikwi/transitions.cpp:218: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(&screen1[y*pitch1], &screen2[y*pitch2], 1280); data/nikwi-0.0.20120213/src/nikwi/transitions.cpp:219: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(&screen1[y2*pitch1], &screen2[y2*pitch2], 1280); data/nikwi-0.0.20120213/src/nikwi/world.cpp:174:12: [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). FILE *f = fopen(file, "wb"); data/nikwi-0.0.20120213/src/slashfx/main.c:89:2: [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(data, buffer->data + buffer->position, length); data/nikwi-0.0.20120213/src/slashfx/main.c:130:2: [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 id[4]; data/nikwi-0.0.20120213/src/slashfx/main.c:272:12: [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). FILE *f = fopen(fname, "rb"); data/nikwi-0.0.20120213/src/tools/bmp2ut/bmp2ut.c:58:2: [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 id[3] = "UT"; data/nikwi-0.0.20120213/src/tools/bmp2ut/bmp2ut.c:74:6: [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). f = fopen(output, "wb"); data/nikwi-0.0.20120213/src/tools/bmp2ut/bmp2ut.c:216:7: [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). f = fopen(maskfn, "r"); data/nikwi-0.0.20120213/src/tools/upack/upack.c:94:2: [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 id[2] = "UP"; data/nikwi-0.0.20120213/src/tools/upack/upack.c:96:6: [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). f = fopen(output, "wb"); data/nikwi-0.0.20120213/src/tools/upack/upack.c:130: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). FILE *inf = fopen(filename, "rb"); data/nikwi-0.0.20120213/src/tools/upack/upack.c:131:2: [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 buff[16384]; data/nikwi-0.0.20120213/src/tools/upack/upack.c:186:4: [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 buff[2048]; data/nikwi-0.0.20120213/src/tools/upack/upack.c:237:15: [2] (integer) atoi: Unless checked, the resulting number can exceed the expected range (CWE-190). If source untrusted, check both minimum and maximum, even if the input had no minus sign (large numbers can roll over into negative number; consider saving to an unsigned value if that is intended). priority = atoi(argv[++i]); data/nikwi-0.0.20120213/src/us/compiler.cpp:80:2: [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 buffer[16384]; data/nikwi-0.0.20120213/src/us/compiler.cpp:547:15: [2] (integer) atoi: Unless checked, the resulting number can exceed the expected range (CWE-190). If source untrusted, check both minimum and maximum, even if the input had no minus sign (large numbers can roll over into negative number; consider saving to an unsigned value if that is intended). bc->addInt(atoi(token)); data/nikwi-0.0.20120213/src/us/funcs.cpp:253:4: [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 buff[256]; data/nikwi-0.0.20120213/src/badcfg/main.c:32:31: [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). char *newStr = (char*)malloc(strlen(string) + 1); data/nikwi-0.0.20120213/src/nikwi/nikio.cpp:48:38: [1] (buffer) fgetc: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). unsigned char lsb = (unsigned char) fgetc(file); data/nikwi-0.0.20120213/src/nikwi/nikio.cpp:49:32: [1] (buffer) fgetc: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). return lsb | ((unsigned char) fgetc(file)) << 8; data/nikwi-0.0.20120213/src/nikwi/sound.cpp:98:25: [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). file = (String)malloc(strlen(smp->value) + 17); data/nikwi-0.0.20120213/src/tools/bmp2ut/bmp2ut.c:187:10: [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=strlen(output)-1;i != -1;i--) data/nikwi-0.0.20120213/src/tools/upack/upack.c:116: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). unsigned short len = strlen(de->name); data/nikwi-0.0.20120213/src/tools/upack/upack.c:168:17: [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). spath = malloc(strlen(path) + strlen(dirname) + 2); data/nikwi-0.0.20120213/src/tools/upack/upack.c:168:32: [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). spath = malloc(strlen(path) + strlen(dirname) + 2); data/nikwi-0.0.20120213/src/us/compiler.cpp:27:12: [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). codeLen = strlen(script->code); data/nikwi-0.0.20120213/src/us/funcs.cpp:240:18: [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 (uint i=0;i<strlen(args);i++) ANALYSIS SUMMARY: Hits = 72 Lines analyzed = 10991 in approximately 0.29 seconds (38427 lines/second) Physical Source Lines of Code (SLOC) = 7997 Hits@level = [0] 51 [1] 10 [2] 49 [3] 0 [4] 13 [5] 0 Hits@level+ = [0+] 123 [1+] 72 [2+] 62 [3+] 13 [4+] 13 [5+] 0 Hits/KSLOC@level+ = [0+] 15.3808 [1+] 9.00338 [2+] 7.75291 [3+] 1.62561 [4+] 1.62561 [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.