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/kodi-pvr-vdr-vnsi-3.6.4/src/VNSIAdmin.cpp Examining data/kodi-pvr-vdr-vnsi-3.6.4/src/VNSIAdmin.h Examining data/kodi-pvr-vdr-vnsi-3.6.4/src/VNSIChannelScan.cpp Examining data/kodi-pvr-vdr-vnsi-3.6.4/src/VNSIChannelScan.h Examining data/kodi-pvr-vdr-vnsi-3.6.4/src/VNSIChannels.cpp Examining data/kodi-pvr-vdr-vnsi-3.6.4/src/VNSIChannels.h Examining data/kodi-pvr-vdr-vnsi-3.6.4/src/VNSIData.cpp Examining data/kodi-pvr-vdr-vnsi-3.6.4/src/VNSIData.h Examining data/kodi-pvr-vdr-vnsi-3.6.4/src/VNSIDemux.cpp Examining data/kodi-pvr-vdr-vnsi-3.6.4/src/VNSIDemux.h Examining data/kodi-pvr-vdr-vnsi-3.6.4/src/VNSIRecording.cpp Examining data/kodi-pvr-vdr-vnsi-3.6.4/src/VNSIRecording.h Examining data/kodi-pvr-vdr-vnsi-3.6.4/src/VNSISession.cpp Examining data/kodi-pvr-vdr-vnsi-3.6.4/src/VNSISession.h Examining data/kodi-pvr-vdr-vnsi-3.6.4/src/client.cpp Examining data/kodi-pvr-vdr-vnsi-3.6.4/src/client.h Examining data/kodi-pvr-vdr-vnsi-3.6.4/src/requestpacket.cpp Examining data/kodi-pvr-vdr-vnsi-3.6.4/src/requestpacket.h Examining data/kodi-pvr-vdr-vnsi-3.6.4/src/responsepacket.cpp Examining data/kodi-pvr-vdr-vnsi-3.6.4/src/responsepacket.h Examining data/kodi-pvr-vdr-vnsi-3.6.4/src/shaders/GUIShader.cpp Examining data/kodi-pvr-vdr-vnsi-3.6.4/src/shaders/GUIShader.h Examining data/kodi-pvr-vdr-vnsi-3.6.4/src/shaders/Matrix.cpp Examining data/kodi-pvr-vdr-vnsi-3.6.4/src/shaders/Matrix.h Examining data/kodi-pvr-vdr-vnsi-3.6.4/src/shaders/Shader.cpp Examining data/kodi-pvr-vdr-vnsi-3.6.4/src/shaders/Shader.h Examining data/kodi-pvr-vdr-vnsi-3.6.4/src/tools.cpp Examining data/kodi-pvr-vdr-vnsi-3.6.4/src/tools.h Examining data/kodi-pvr-vdr-vnsi-3.6.4/src/vnsicommand.h Examining data/kodi-pvr-vdr-vnsi-3.6.4/src/xbmc_codec_descriptor.hpp FINAL RESULTS: data/kodi-pvr-vdr-vnsi-3.6.4/src/VNSIAdmin.cpp:1026: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 buffer[8]; data/kodi-pvr-vdr-vnsi-3.6.4/src/VNSIAdmin.cpp:1029:5: [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(buffer, "%d", i); data/kodi-pvr-vdr-vnsi-3.6.4/src/VNSIAdmin.cpp:1050:5: [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(buffer, "%d", i); data/kodi-pvr-vdr-vnsi-3.6.4/src/VNSIAdmin.cpp:1493: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 buf[16]; data/kodi-pvr-vdr-vnsi-3.6.4/src/VNSIAdmin.cpp:1494: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(buf, "%04x", provider.m_caid); data/kodi-pvr-vdr-vnsi-3.6.4/src/VNSIData.cpp:961: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). vrp.add_U32(atoi(recinfo.strRecordingId)); data/kodi-pvr-vdr-vnsi-3.6.4/src/VNSIData.cpp:984: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). vrp.add_U32(atoi(recinfo.strRecordingId)); data/kodi-pvr-vdr-vnsi-3.6.4/src/VNSIData.cpp:1016: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). vrp.add_U32(atoi(recinfo.strRecordingId)); data/kodi-pvr-vdr-vnsi-3.6.4/src/VNSIData.cpp:1116: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). vrp.add_U32(atoi(recinfo.strRecordingId)); data/kodi-pvr-vdr-vnsi-3.6.4/src/VNSIDemux.cpp:82: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(&props->stream[i], &m_streams.stream[i], sizeof(PVR_STREAM_PROPERTIES::PVR_STREAM)); data/kodi-pvr-vdr-vnsi-3.6.4/src/VNSIRecording.cpp:54: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). vrp.add_U32(atoi(recinfo.strRecordingId)); data/kodi-pvr-vdr-vnsi-3.6.4/src/VNSIRecording.cpp:122: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(buf, data, length); data/kodi-pvr-vdr-vnsi-3.6.4/src/requestpacket.cpp:75: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(&buffer[0], &ul, sizeof(uint32_t)); data/kodi-pvr-vdr-vnsi-3.6.4/src/requestpacket.cpp:77: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(&buffer[4], &ul, sizeof(uint32_t)); data/kodi-pvr-vdr-vnsi-3.6.4/src/requestpacket.cpp:79: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(&buffer[8], &ul, sizeof(uint32_t)); data/kodi-pvr-vdr-vnsi-3.6.4/src/requestpacket.cpp:81: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(&buffer[userDataLenPos], &ul, sizeof(uint32_t)); data/kodi-pvr-vdr-vnsi-3.6.4/src/requestpacket.cpp:89: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(buffer + bufUsed, string, len); data/kodi-pvr-vdr-vnsi-3.6.4/src/requestpacket.cpp:94: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(&buffer[userDataLenPos], &tmp, sizeof(uint32_t)); data/kodi-pvr-vdr-vnsi-3.6.4/src/requestpacket.cpp:106: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(&buffer[userDataLenPos], &tmp, sizeof(uint32_t)); data/kodi-pvr-vdr-vnsi-3.6.4/src/requestpacket.cpp:114: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(&buffer[bufUsed], &tmp, sizeof(int32_t)); data/kodi-pvr-vdr-vnsi-3.6.4/src/requestpacket.cpp:119: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(&buffer[userDataLenPos], &tmp, sizeof(uint32_t)); data/kodi-pvr-vdr-vnsi-3.6.4/src/requestpacket.cpp:127: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(&buffer[bufUsed], &tmp, sizeof(uint32_t)); data/kodi-pvr-vdr-vnsi-3.6.4/src/requestpacket.cpp:132: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(&buffer[userDataLenPos], &tmp, sizeof(uint32_t)); data/kodi-pvr-vdr-vnsi-3.6.4/src/requestpacket.cpp:140: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(&buffer[bufUsed], &tmp, sizeof(uint64_t)); data/kodi-pvr-vdr-vnsi-3.6.4/src/requestpacket.cpp:145: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(&buffer[userDataLenPos], &tmp, sizeof(uint32_t)); data/kodi-pvr-vdr-vnsi-3.6.4/src/requestpacket.cpp:153: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(&buffer[bufUsed], &tmp, sizeof(int64_t)); data/kodi-pvr-vdr-vnsi-3.6.4/src/requestpacket.cpp:158: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(&buffer[userDataLenPos], &tmp, sizeof(uint32_t)); data/kodi-pvr-vdr-vnsi-3.6.4/src/requestpacket.cpp:173: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(newBuf, buffer, bufUsed); data/kodi-pvr-vdr-vnsi-3.6.4/src/responsepacket.cpp:176: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(&ul, &userData[packetPos], sizeof(uint32_t)); data/kodi-pvr-vdr-vnsi-3.6.4/src/responsepacket.cpp:187: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(&ull, &userData[packetPos], sizeof(uint64_t)); data/kodi-pvr-vdr-vnsi-3.6.4/src/responsepacket.cpp:198: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(&ull, &userData[packetPos], sizeof(uint64_t)); data/kodi-pvr-vdr-vnsi-3.6.4/src/responsepacket.cpp:201: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(&d,&ull,sizeof(double)); data/kodi-pvr-vdr-vnsi-3.6.4/src/responsepacket.cpp:211: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(&l, &userData[packetPos], sizeof(int32_t)); data/kodi-pvr-vdr-vnsi-3.6.4/src/responsepacket.cpp:222: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(&ll, &userData[packetPos], sizeof(int64_t)); data/kodi-pvr-vdr-vnsi-3.6.4/src/shaders/Shader.cpp:33: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 buffer[1024]; data/kodi-pvr-vdr-vnsi-3.6.4/src/shaders/Shader.cpp:129: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 path[1024]; data/kodi-pvr-vdr-vnsi-3.6.4/src/shaders/Shader.cpp:144: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(path,"/resources/shaders/1.5/"); data/kodi-pvr-vdr-vnsi-3.6.4/src/shaders/Shader.cpp:147: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(path,"/resources/shaders/1.2/"); data/kodi-pvr-vdr-vnsi-3.6.4/src/shaders/Shader.cpp:149:3: [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(path,"/resources/shaders/1.2/"); data/kodi-pvr-vdr-vnsi-3.6.4/src/tools.cpp:44:14: [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. unsigned char c[8]; data/kodi-pvr-vdr-vnsi-3.6.4/src/VNSIData.cpp:276:5: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy(tag.strChannelName, strChannelName, sizeof(tag.strChannelName) - 1); data/kodi-pvr-vdr-vnsi-3.6.4/src/VNSIData.cpp:291:9: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy(tag.strIconPath, path.c_str(), sizeof(tag.strIconPath) - 1); data/kodi-pvr-vdr-vnsi-3.6.4/src/VNSIData.cpp:418:3: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy(tag.strTitle, strTitle, sizeof(tag.strTitle) - 1); data/kodi-pvr-vdr-vnsi-3.6.4/src/VNSIData.cpp:423:5: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy(tag.strEpgSearchString, epgSearch, sizeof(tag.strEpgSearchString) - 1); data/kodi-pvr-vdr-vnsi-3.6.4/src/VNSIData.cpp:481:7: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy(tag.strTitle, strTitle, sizeof(tag.strTitle) - 1); data/kodi-pvr-vdr-vnsi-3.6.4/src/VNSIData.cpp:488:9: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy(tag.strEpgSearchString, epgSearch, sizeof(tag.strEpgSearchString) - 1); data/kodi-pvr-vdr-vnsi-3.6.4/src/VNSIData.cpp:563: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(directory.c_str()) > 0) data/kodi-pvr-vdr-vnsi-3.6.4/src/VNSIData.cpp:593: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(title.c_str()) > 0) data/kodi-pvr-vdr-vnsi-3.6.4/src/VNSIData.cpp:704:3: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy(timerinfo1.strTitle, newname, sizeof(timerinfo1.strTitle) - 1); data/kodi-pvr-vdr-vnsi-3.6.4/src/VNSIData.cpp:768:3: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy(types[*size].strDescription, XBMC->GetLocalizedString(30200), 64); data/kodi-pvr-vdr-vnsi-3.6.4/src/VNSIData.cpp:783:3: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy(types[*size].strDescription, XBMC->GetLocalizedString(30201), 64); data/kodi-pvr-vdr-vnsi-3.6.4/src/VNSIData.cpp:800:3: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy(types[*size].strDescription, XBMC->GetLocalizedString(30205), 64); data/kodi-pvr-vdr-vnsi-3.6.4/src/VNSIData.cpp:814:3: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy(types[*size].strDescription, XBMC->GetLocalizedString(30202), 64); data/kodi-pvr-vdr-vnsi-3.6.4/src/VNSIData.cpp:843:7: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy(types[*size].strDescription, XBMC->GetLocalizedString(30204), 64); data/kodi-pvr-vdr-vnsi-3.6.4/src/VNSIData.cpp:856:5: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy(types[*size].strDescription, XBMC->GetLocalizedString(30203), 64); data/kodi-pvr-vdr-vnsi-3.6.4/src/VNSIData.cpp:911:5: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy(tag.strChannelName, strChannelName, sizeof(tag.strChannelName) - 1); data/kodi-pvr-vdr-vnsi-3.6.4/src/VNSIData.cpp:933:5: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy(tag.strTitle, strTitle, sizeof(tag.strTitle) - 1); data/kodi-pvr-vdr-vnsi-3.6.4/src/VNSIData.cpp:936:5: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy(tag.strEpisodeName, strEpisodeName, sizeof(tag.strEpisodeName) - 1); data/kodi-pvr-vdr-vnsi-3.6.4/src/VNSIData.cpp:937:5: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy(tag.strPlotOutline, strEpisodeName, sizeof(tag.strEpisodeName) - 1); data/kodi-pvr-vdr-vnsi-3.6.4/src/VNSIData.cpp:940:5: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy(tag.strPlot, strPlot, sizeof(tag.strPlot) - 1); data/kodi-pvr-vdr-vnsi-3.6.4/src/VNSIData.cpp:943:5: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy(tag.strDirectory, strDirectory, sizeof(tag.strDirectory) - 1); data/kodi-pvr-vdr-vnsi-3.6.4/src/VNSIData.cpp:946:5: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy(tag.strRecordingId, strRecordingId.c_str(), sizeof(tag.strRecordingId) - 1); data/kodi-pvr-vdr-vnsi-3.6.4/src/VNSIData.cpp:1082:5: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy(tag.strChannelName, strChannelName, sizeof(tag.strChannelName) - 1); data/kodi-pvr-vdr-vnsi-3.6.4/src/VNSIData.cpp:1091:5: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy(tag.strTitle, strTitle, sizeof(tag.strTitle) - 1); data/kodi-pvr-vdr-vnsi-3.6.4/src/VNSIData.cpp:1094:5: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy(tag.strEpisodeName, strEpisodeName, sizeof(tag.strEpisodeName) - 1); data/kodi-pvr-vdr-vnsi-3.6.4/src/VNSIData.cpp:1095:5: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy(tag.strPlotOutline, strEpisodeName, sizeof(tag.strEpisodeName) - 1); data/kodi-pvr-vdr-vnsi-3.6.4/src/VNSIData.cpp:1098:5: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy(tag.strPlot, strPlot, sizeof(tag.strPlot) - 1); data/kodi-pvr-vdr-vnsi-3.6.4/src/VNSIData.cpp:1101:5: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy(tag.strDirectory, strDirectory, sizeof(tag.strDirectory) - 1); data/kodi-pvr-vdr-vnsi-3.6.4/src/VNSIData.cpp:1104:5: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy(tag.strRecordingId, strRecordingId.c_str(), sizeof(tag.strRecordingId) - 1); data/kodi-pvr-vdr-vnsi-3.6.4/src/VNSIData.cpp:1326:5: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy(tag.strGroupName, strGroupName, sizeof(tag.strGroupName) - 1); data/kodi-pvr-vdr-vnsi-3.6.4/src/VNSIData.cpp:1355:5: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy(tag.strGroupName, group.strGroupName, sizeof(tag.strGroupName) - 1); data/kodi-pvr-vdr-vnsi-3.6.4/src/VNSIDemux.cpp:343:3: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy(qualityinfo.strAdapterName, m_Quality.fe_name.c_str(), sizeof(qualityinfo.strAdapterName)); data/kodi-pvr-vdr-vnsi-3.6.4/src/VNSIDemux.cpp:344:3: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy(qualityinfo.strAdapterStatus, m_Quality.fe_status.c_str(), sizeof(qualityinfo.strAdapterStatus)); data/kodi-pvr-vdr-vnsi-3.6.4/src/requestpacket.cpp:87:16: [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). size_t len = strlen(string) + 1; ANALYSIS SUMMARY: Hits = 74 Lines analyzed = 8432 in approximately 0.88 seconds (9632 lines/second) Physical Source Lines of Code (SLOC) = 6536 Hits@level = [0] 1 [1] 34 [2] 40 [3] 0 [4] 0 [5] 0 Hits@level+ = [0+] 75 [1+] 74 [2+] 40 [3+] 0 [4+] 0 [5+] 0 Hits/KSLOC@level+ = [0+] 11.4749 [1+] 11.3219 [2+] 6.11995 [3+] 0 [4+] 0 [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.