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/python-ncls-0.0.57+ds/ncls/src/cgraph.c Examining data/python-ncls-0.0.57+ds/ncls/src/cgraph.h Examining data/python-ncls-0.0.57+ds/ncls/src/default.h Examining data/python-ncls-0.0.57+ds/ncls/src/fintervaldb.c Examining data/python-ncls-0.0.57+ds/ncls/src/fintervaldb.h Examining data/python-ncls-0.0.57+ds/ncls/src/intervaldb.c Examining data/python-ncls-0.0.57+ds/ncls/src/intervaldb.h Examining data/python-ncls-0.0.57+ds/ncls/src/intervaldb32.c Examining data/python-ncls-0.0.57+ds/ncls/src/intervaldb32.h Examining data/python-ncls-0.0.57+ds/ncls/src/utarray.h FINAL RESULTS: data/python-ncls-0.0.57+ds/ncls/src/default.h:57:5: [4] (buffer) sprintf: Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or vsnprintf. sprintf(errstr,"%s, line %d: *** invalid memory request: %s[%d].\n",\ data/python-ncls-0.0.57+ds/ncls/src/default.h:64:5: [4] (buffer) sprintf: Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or vsnprintf. sprintf(errstr,"%s, line %d: memory request failed: %s[%d].\n",\ data/python-ncls-0.0.57+ds/ncls/src/default.h:74:5: [4] (buffer) sprintf: Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or vsnprintf. sprintf(errstr,"%s, line %d: *** invalid memory request: %s[%d].\n",\ data/python-ncls-0.0.57+ds/ncls/src/default.h:83:7: [4] (buffer) sprintf: Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or vsnprintf. sprintf(errstr,"%s, line %d: memory request failed: %s[%d].\n",\ data/python-ncls-0.0.57+ds/ncls/src/fintervaldb.c:761:3: [4] (buffer) sprintf: Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or vsnprintf. sprintf(path,"%s.subhead",filestem); /* SAVE THE SUBHEADER LIST */ data/python-ncls-0.0.57+ds/ncls/src/fintervaldb.c:764:5: [4] (buffer) sprintf: Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or vsnprintf. sprintf(err_msg,"unable to open file %s for writing",path); data/python-ncls-0.0.57+ds/ncls/src/fintervaldb.c:767:3: [4] (buffer) sprintf: Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or vsnprintf. sprintf(path,"%s.idb",filestem); /* SAVE THE DATABASE */ data/python-ncls-0.0.57+ds/ncls/src/fintervaldb.c:770:5: [4] (buffer) sprintf: Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or vsnprintf. sprintf(err_msg,"unable to open file %s for writing",path); data/python-ncls-0.0.57+ds/ncls/src/fintervaldb.c:788:3: [4] (buffer) sprintf: Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or vsnprintf. sprintf(path,"%s.index",filestem); /* SAVE THE COMPACTED INDEX */ data/python-ncls-0.0.57+ds/ncls/src/fintervaldb.c:791:5: [4] (buffer) sprintf: Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or vsnprintf. sprintf(err_msg,"unable to open file %s for writing",path); data/python-ncls-0.0.57+ds/ncls/src/fintervaldb.c:800:3: [4] (buffer) sprintf: Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or vsnprintf. sprintf(path,"%s.size",filestem); /* SAVE BASIC SIZE INFO*/ data/python-ncls-0.0.57+ds/ncls/src/fintervaldb.c:803:5: [4] (buffer) sprintf: Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or vsnprintf. sprintf(err_msg,"unable to open file %s for writing",path); data/python-ncls-0.0.57+ds/ncls/src/fintervaldb.c:824:3: [4] (buffer) sprintf: Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or vsnprintf. sprintf(path,"%s.size",filestem); /* READ BASIC SIZE INFO*/ data/python-ncls-0.0.57+ds/ncls/src/fintervaldb.c:828:7: [4] (buffer) sprintf: Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or vsnprintf. sprintf(err_msg,"unable to open file %s",path); data/python-ncls-0.0.57+ds/ncls/src/fintervaldb.c:836:5: [4] (buffer) sprintf: Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or vsnprintf. sprintf(path,"%s.index",filestem); /* READ THE COMPACTED INDEX */ data/python-ncls-0.0.57+ds/ncls/src/fintervaldb.c:840:9: [4] (buffer) sprintf: Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or vsnprintf. sprintf(err_msg,"unable to open file %s",path); data/python-ncls-0.0.57+ds/ncls/src/fintervaldb.c:849:5: [4] (buffer) sprintf: Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or vsnprintf. sprintf(path,"%s.subhead",filestem); /* SAVE THE SUBHEADER LIST */ data/python-ncls-0.0.57+ds/ncls/src/fintervaldb.c:853:9: [4] (buffer) sprintf: Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or vsnprintf. sprintf(err_msg,"unable to open file %s",path); data/python-ncls-0.0.57+ds/ncls/src/fintervaldb.c:878:3: [4] (buffer) sprintf: Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or vsnprintf. sprintf(path,"%s.idb",filestem); /* OPEN THE DATABASE */ data/python-ncls-0.0.57+ds/ncls/src/fintervaldb.c:882:7: [4] (buffer) sprintf: Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or vsnprintf. sprintf(err_msg,"unable to open file %s",path); data/python-ncls-0.0.57+ds/ncls/src/intervaldb.c:785:3: [4] (buffer) sprintf: Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or vsnprintf. sprintf(path,"%s.subhead",filestem); /* SAVE THE SUBHEADER LIST */ data/python-ncls-0.0.57+ds/ncls/src/intervaldb.c:788:5: [4] (buffer) sprintf: Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or vsnprintf. sprintf(err_msg,"unable to open file %s for writing",path); data/python-ncls-0.0.57+ds/ncls/src/intervaldb.c:791:3: [4] (buffer) sprintf: Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or vsnprintf. sprintf(path,"%s.idb",filestem); /* SAVE THE DATABASE */ data/python-ncls-0.0.57+ds/ncls/src/intervaldb.c:794:5: [4] (buffer) sprintf: Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or vsnprintf. sprintf(err_msg,"unable to open file %s for writing",path); data/python-ncls-0.0.57+ds/ncls/src/intervaldb.c:812:3: [4] (buffer) sprintf: Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or vsnprintf. sprintf(path,"%s.index",filestem); /* SAVE THE COMPACTED INDEX */ data/python-ncls-0.0.57+ds/ncls/src/intervaldb.c:815:5: [4] (buffer) sprintf: Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or vsnprintf. sprintf(err_msg,"unable to open file %s for writing",path); data/python-ncls-0.0.57+ds/ncls/src/intervaldb.c:824:3: [4] (buffer) sprintf: Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or vsnprintf. sprintf(path,"%s.size",filestem); /* SAVE BASIC SIZE INFO*/ data/python-ncls-0.0.57+ds/ncls/src/intervaldb.c:827:5: [4] (buffer) sprintf: Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or vsnprintf. sprintf(err_msg,"unable to open file %s for writing",path); data/python-ncls-0.0.57+ds/ncls/src/intervaldb.c:848:3: [4] (buffer) sprintf: Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or vsnprintf. sprintf(path,"%s.size",filestem); /* READ BASIC SIZE INFO*/ data/python-ncls-0.0.57+ds/ncls/src/intervaldb.c:852:7: [4] (buffer) sprintf: Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or vsnprintf. sprintf(err_msg,"unable to open file %s",path); data/python-ncls-0.0.57+ds/ncls/src/intervaldb.c:860:5: [4] (buffer) sprintf: Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or vsnprintf. sprintf(path,"%s.index",filestem); /* READ THE COMPACTED INDEX */ data/python-ncls-0.0.57+ds/ncls/src/intervaldb.c:864:9: [4] (buffer) sprintf: Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or vsnprintf. sprintf(err_msg,"unable to open file %s",path); data/python-ncls-0.0.57+ds/ncls/src/intervaldb.c:873:5: [4] (buffer) sprintf: Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or vsnprintf. sprintf(path,"%s.subhead",filestem); /* SAVE THE SUBHEADER LIST */ data/python-ncls-0.0.57+ds/ncls/src/intervaldb.c:877:9: [4] (buffer) sprintf: Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or vsnprintf. sprintf(err_msg,"unable to open file %s",path); data/python-ncls-0.0.57+ds/ncls/src/intervaldb.c:902:3: [4] (buffer) sprintf: Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or vsnprintf. sprintf(path,"%s.idb",filestem); /* OPEN THE DATABASE */ data/python-ncls-0.0.57+ds/ncls/src/intervaldb.c:906:7: [4] (buffer) sprintf: Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or vsnprintf. sprintf(err_msg,"unable to open file %s",path); data/python-ncls-0.0.57+ds/ncls/src/default.h:56: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 errstr[1024]; \ data/python-ncls-0.0.57+ds/ncls/src/default.h:63: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 errstr[1024]; \ data/python-ncls-0.0.57+ds/ncls/src/default.h:73: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 errstr[1024]; \ data/python-ncls-0.0.57+ds/ncls/src/default.h:82: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 errstr[1024]; \ data/python-ncls-0.0.57+ds/ncls/src/fintervaldb.c:257:7: [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(imsub+i,im+j,sizeof(IntervalMap)); /* COPY INTERVAL */ data/python-ncls-0.0.57+ds/ncls/src/fintervaldb.c:269: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(im+j,im+i,sizeof(IntervalMap)); data/python-ncls-0.0.57+ds/ncls/src/fintervaldb.c:273: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(im+j,imsub,nsub*sizeof(IntervalMap)); /* COPY THE SUBLISTS */ data/python-ncls-0.0.57+ds/ncls/src/fintervaldb.c:435:7: [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+ibuf,im + it->i,sizeof(IntervalMap)); /*SAVE THIS HIT TO BUFFER */ data/python-ncls-0.0.57+ds/ncls/src/fintervaldb.c:619: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(buf+ibuf,it->im + it->i,sizeof(IntervalMap)); /*SAVE THIS HIT */ data/python-ncls-0.0.57+ds/ncls/src/fintervaldb.c:687:7: [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(sub_pack+j,subheader+i,sizeof(SublistHeader)); data/python-ncls-0.0.57+ds/ncls/src/fintervaldb.c:694:7: [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(sub_pack+j,subheader+i,sizeof(SublistHeader)); data/python-ncls-0.0.57+ds/ncls/src/fintervaldb.c:702: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(subheader,sub_pack,nlists*sizeof(SublistHeader)); /* SAVE REORDERED LIST*/ data/python-ncls-0.0.57+ds/ncls/src/fintervaldb.c:750: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[2048]; data/python-ncls-0.0.57+ds/ncls/src/fintervaldb.c:753: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 err_msg[1024]; data/python-ncls-0.0.57+ds/ncls/src/fintervaldb.c:758: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(err_msg,"unable to malloc %d subheaders",nlists); data/python-ncls-0.0.57+ds/ncls/src/fintervaldb.c:762:19: [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). ifile_subheader=fopen(path,"wb"); /* binary file */ data/python-ncls-0.0.57+ds/ncls/src/fintervaldb.c:768:9: [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). ifile=fopen(path,"wb"); /* binary file */ data/python-ncls-0.0.57+ds/ncls/src/fintervaldb.c:789:9: [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). ifile=fopen(path,"wb"); /* binary file */ data/python-ncls-0.0.57+ds/ncls/src/fintervaldb.c:801:9: [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). ifile=fopen(path,"w"); /* text file */ data/python-ncls-0.0.57+ds/ncls/src/fintervaldb.c:818: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[2048]; data/python-ncls-0.0.57+ds/ncls/src/fintervaldb.c:825:9: [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). ifile=fopen(path,"r"); /* text file */ data/python-ncls-0.0.57+ds/ncls/src/fintervaldb.c:837:11: [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). ifile=fopen(path,"rb"); /* binary file */ data/python-ncls-0.0.57+ds/ncls/src/fintervaldb.c:850:11: [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). ifile=fopen(path,"rb"); /* binary file */ data/python-ncls-0.0.57+ds/ncls/src/fintervaldb.c:879: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). idb_file->ifile_idb=fopen(path,"rb"); /* binary file */ data/python-ncls-0.0.57+ds/ncls/src/fintervaldb.c:1218:7: [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+nfound, im + start_stack[sp], sizeof(IntervalMap)); /*SAVE THIS HIT TO BUFFER */ data/python-ncls-0.0.57+ds/ncls/src/intervaldb.c:281:7: [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(imsub+i,im+j,sizeof(IntervalMap)); /* COPY INTERVAL */ data/python-ncls-0.0.57+ds/ncls/src/intervaldb.c:293: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(im+j,im+i,sizeof(IntervalMap)); data/python-ncls-0.0.57+ds/ncls/src/intervaldb.c:297: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(im+j,imsub,nsub*sizeof(IntervalMap)); /* COPY THE SUBLISTS */ data/python-ncls-0.0.57+ds/ncls/src/intervaldb.c:459:7: [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+ibuf,im + it->i,sizeof(IntervalMap)); /*SAVE THIS HIT TO BUFFER */ data/python-ncls-0.0.57+ds/ncls/src/intervaldb.c:643: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(buf+ibuf,it->im + it->i,sizeof(IntervalMap)); /*SAVE THIS HIT */ data/python-ncls-0.0.57+ds/ncls/src/intervaldb.c:711:7: [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(sub_pack+j,subheader+i,sizeof(SublistHeader)); data/python-ncls-0.0.57+ds/ncls/src/intervaldb.c:718:7: [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(sub_pack+j,subheader+i,sizeof(SublistHeader)); data/python-ncls-0.0.57+ds/ncls/src/intervaldb.c:726: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(subheader,sub_pack,nlists*sizeof(SublistHeader)); /* SAVE REORDERED LIST*/ data/python-ncls-0.0.57+ds/ncls/src/intervaldb.c:774: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[2048]; data/python-ncls-0.0.57+ds/ncls/src/intervaldb.c:777: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 err_msg[1024]; data/python-ncls-0.0.57+ds/ncls/src/intervaldb.c:782: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(err_msg,"unable to malloc %d subheaders",nlists); data/python-ncls-0.0.57+ds/ncls/src/intervaldb.c:786:19: [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). ifile_subheader=fopen(path,"wb"); /* binary file */ data/python-ncls-0.0.57+ds/ncls/src/intervaldb.c:792:9: [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). ifile=fopen(path,"wb"); /* binary file */ data/python-ncls-0.0.57+ds/ncls/src/intervaldb.c:813:9: [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). ifile=fopen(path,"wb"); /* binary file */ data/python-ncls-0.0.57+ds/ncls/src/intervaldb.c:825:9: [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). ifile=fopen(path,"w"); /* text file */ data/python-ncls-0.0.57+ds/ncls/src/intervaldb.c:842: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[2048]; data/python-ncls-0.0.57+ds/ncls/src/intervaldb.c:849:9: [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). ifile=fopen(path,"r"); /* text file */ data/python-ncls-0.0.57+ds/ncls/src/intervaldb.c:861:11: [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). ifile=fopen(path,"rb"); /* binary file */ data/python-ncls-0.0.57+ds/ncls/src/intervaldb.c:874:11: [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). ifile=fopen(path,"rb"); /* binary file */ data/python-ncls-0.0.57+ds/ncls/src/intervaldb.c:903: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). idb_file->ifile_idb=fopen(path,"rb"); /* binary file */ data/python-ncls-0.0.57+ds/ncls/src/intervaldb.c:1242:7: [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+nfound, im + start_stack[sp], sizeof(IntervalMap)); /*SAVE THIS HIT TO BUFFER */ data/python-ncls-0.0.57+ds/ncls/src/intervaldb32.c:116:7: [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(imsub+i,im+j,sizeof(IntervalMap)); /* COPY INTERVAL */ data/python-ncls-0.0.57+ds/ncls/src/intervaldb32.c:128: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(im+j,im+i,sizeof(IntervalMap)); data/python-ncls-0.0.57+ds/ncls/src/intervaldb32.c: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(im+j,imsub,nsub*sizeof(IntervalMap)); /* COPY THE SUBLISTS */ data/python-ncls-0.0.57+ds/ncls/src/intervaldb32.c:270:7: [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+ibuf,im + it->i,sizeof(IntervalMap)); /*SAVE THIS HIT TO BUFFER */ ANALYSIS SUMMARY: Hits = 86 Lines analyzed = 3847 in approximately 0.14 seconds (27763 lines/second) Physical Source Lines of Code (SLOC) = 2412 Hits@level = [0] 20 [1] 0 [2] 50 [3] 0 [4] 36 [5] 0 Hits@level+ = [0+] 106 [1+] 86 [2+] 86 [3+] 36 [4+] 36 [5+] 0 Hits/KSLOC@level+ = [0+] 43.9469 [1+] 35.6551 [2+] 35.6551 [3+] 14.9254 [4+] 14.9254 [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.