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/silx-0.13.1+dfsg/silx/math/fit/peaks/include/peaks.h Examining data/silx-0.13.1+dfsg/silx/math/fit/peaks/src/peaks.c Examining data/silx-0.13.1+dfsg/silx/math/fit/functions/include/functions.h Examining data/silx-0.13.1+dfsg/silx/math/fit/functions/src/funs.c Examining data/silx-0.13.1+dfsg/silx/math/fit/filters/include/filters.h Examining data/silx-0.13.1+dfsg/silx/math/fit/filters/src/smoothnd.c Examining data/silx-0.13.1+dfsg/silx/math/fit/filters/src/strip.c Examining data/silx-0.13.1+dfsg/silx/math/fit/filters/src/snip2d.c Examining data/silx-0.13.1+dfsg/silx/math/fit/filters/src/snip1d.c Examining data/silx-0.13.1+dfsg/silx/math/fit/filters/src/snip3d.c Examining data/silx-0.13.1+dfsg/silx/math/medianfilter/include/median_filter.hpp Examining data/silx-0.13.1+dfsg/silx/math/include/math_compatibility.h Examining data/silx-0.13.1+dfsg/silx/math/marchingcubes/mc.hpp Examining data/silx-0.13.1+dfsg/silx/math/marchingcubes/mc_lut.cpp Examining data/silx-0.13.1+dfsg/silx/math/histogramnd/include/msvc/stdint.h Examining data/silx-0.13.1+dfsg/silx/math/histogramnd/include/templates.h Examining data/silx-0.13.1+dfsg/silx/math/histogramnd/include/histogramnd_c.h Examining data/silx-0.13.1+dfsg/silx/math/histogramnd/src/histogramnd_template.c Examining data/silx-0.13.1+dfsg/silx/math/histogramnd/src/histogramnd_c.c Examining data/silx-0.13.1+dfsg/silx/utils/include/silx_store_openmp.h Examining data/silx-0.13.1+dfsg/silx/image/marchingsquares/include/patterns.h Examining data/silx-0.13.1+dfsg/silx/io/specfile/include/locale_management.h Examining data/silx-0.13.1+dfsg/silx/io/specfile/include/SpecFile.h Examining data/silx-0.13.1+dfsg/silx/io/specfile/include/SpecFileP.h Examining data/silx-0.13.1+dfsg/silx/io/specfile/include/Lists.h Examining data/silx-0.13.1+dfsg/silx/io/specfile/include/SpecFileCython.h Examining data/silx-0.13.1+dfsg/silx/io/specfile/src/sfwrite.c Examining data/silx-0.13.1+dfsg/silx/io/specfile/src/locale_management.c Examining data/silx-0.13.1+dfsg/silx/io/specfile/src/sfindex.c Examining data/silx-0.13.1+dfsg/silx/io/specfile/src/sftools.c Examining data/silx-0.13.1+dfsg/silx/io/specfile/src/sfmca.c Examining data/silx-0.13.1+dfsg/silx/io/specfile/src/sflists.c Examining data/silx-0.13.1+dfsg/silx/io/specfile/src/sfdata.c Examining data/silx-0.13.1+dfsg/silx/io/specfile/src/sfinit.c Examining data/silx-0.13.1+dfsg/silx/io/specfile/src/sflabel.c Examining data/silx-0.13.1+dfsg/silx/io/specfile/src/sfheader.c FINAL RESULTS: data/silx-0.13.1+dfsg/silx/io/specfile/src/locale_management.c:66: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(localeBuffer, currentLocaleBuffer); data/silx-0.13.1+dfsg/silx/io/specfile/src/sfdata.c:282: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(localeBuffer, currentLocaleBuffer); data/silx-0.13.1+dfsg/silx/io/specfile/src/sfheader.c:736:6: [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(buf,(char *)linebuf); data/silx-0.13.1+dfsg/silx/io/specfile/src/sfinit.c:561:5: [4] (buffer) sprintf: Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or vsnprintf. sprintf(idxname,"%s%s",sf->sfname,SF_ISFX); data/silx-0.13.1+dfsg/silx/io/specfile/src/sfinit.c:625:5: [4] (buffer) sprintf: Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or vsnprintf. sprintf(idxname,"%s%s",sf->sfname,SF_ISFX); data/silx-0.13.1+dfsg/silx/io/specfile/src/sflabel.c:250:14: [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(onelabel,tmplab); data/silx-0.13.1+dfsg/silx/io/specfile/src/sflabel.c:269:6: [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(onelabel,tmplab); data/silx-0.13.1+dfsg/silx/io/specfile/src/sflabel.c:375:16: [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(onemot,tmpmot); data/silx-0.13.1+dfsg/silx/io/specfile/src/sflabel.c:393:9: [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(onemot,tmpmot); data/silx-0.13.1+dfsg/silx/io/specfile/src/sflabel.c:518: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(localeBuffer, currentLocaleBuffer); data/silx-0.13.1+dfsg/silx/io/specfile/src/sfmca.c:261: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(localeBuffer, currentLocaleBuffer); data/silx-0.13.1+dfsg/silx/io/specfile/src/locale_management.c: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 localeBuffer[21]; data/silx-0.13.1+dfsg/silx/io/specfile/src/sfdata.c:198:6: [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 strval[100]; data/silx-0.13.1+dfsg/silx/io/specfile/src/sfdata.c:208: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 localeBuffer[21]; data/silx-0.13.1+dfsg/silx/io/specfile/src/sfdata.c:231:15: [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[i],sf->data[i],sizeof(double) * dinfo[COL]); data/silx-0.13.1+dfsg/silx/io/specfile/src/sfdata.c:384:15: [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(dataline,valline,sizeof(double) * cols); data/silx-0.13.1+dfsg/silx/io/specfile/src/sfdata.c:417:15: [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(sf->data[i],data[i],sizeof(double) * dinfo[COL]); data/silx-0.13.1+dfsg/silx/io/specfile/src/sfdata.c:438:17: [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(sf->data[i],data[i],sizeof(double) * dinfo[COL]); data/silx-0.13.1+dfsg/silx/io/specfile/src/sfdata.c:560: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(datarow,data[selection],sizeof(double) * dinfo[COL]); data/silx-0.13.1+dfsg/silx/io/specfile/src/sfdata.c:656:6: [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 oneline[300]; data/silx-0.13.1+dfsg/silx/io/specfile/src/sfheader.c:145:6: [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(ret_line,ptr,sizeof(char) * length ); data/silx-0.13.1+dfsg/silx/io/specfile/src/sfheader.c:183:14: [2] (integer) atol: 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). col = atol( buf ); data/silx-0.13.1+dfsg/silx/io/specfile/src/sfheader.c:317:15: [2] (integer) atol: 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). epoch = atol( buf ); data/silx-0.13.1+dfsg/silx/io/specfile/src/sfheader.c:504:6: [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( title, line, sizeof(char) * i ); data/silx-0.13.1+dfsg/silx/io/specfile/src/sfheader.c:717: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. static char linebuf[5000]; data/silx-0.13.1+dfsg/silx/io/specfile/src/sfheader.c:788:6: [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( ret, line, sizeof(char) * ( 1 + strlen( line )) ); data/silx-0.13.1+dfsg/silx/io/specfile/src/sfindex.c:196: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(arr,indexes,sizeof(long) * i); data/silx-0.13.1+dfsg/silx/io/specfile/src/sfindex.c:317:6: [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(*scan_list,list, i * sizeof(long)); data/silx-0.13.1+dfsg/silx/io/specfile/src/sfinit.c:225:11: [2] (misc) open: 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). fd = open(name,SF_OPENFLAG); data/silx-0.13.1+dfsg/silx/io/specfile/src/sfinit.c:563:16: [2] (misc) open: 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 ((sfi = open(idxname,SF_OPENFLAG)) == -1) { data/silx-0.13.1+dfsg/silx/io/specfile/src/sfinit.c:576: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 buffer[200]; data/silx-0.13.1+dfsg/silx/io/specfile/src/sfinit.c:604: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(cursor,&filecurs,sizeof(SfCursor)); data/silx-0.13.1+dfsg/silx/io/specfile/src/sfinit.c:628:16: [2] (misc) open: 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 ((fdi = open(idxname,O_CREAT | O_WRONLY,SF_UMASK)) == -1) { data/silx-0.13.1+dfsg/silx/io/specfile/src/sfinit.c:796: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[50]; data/silx-0.13.1+dfsg/silx/io/specfile/src/sfinit.c:797: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 buffer2[50]; data/silx-0.13.1+dfsg/silx/io/specfile/src/sfinit.c:815:25: [2] (integer) atol: 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). scan->scan_no = atol(buffer2); data/silx-0.13.1+dfsg/silx/io/specfile/src/sflabel.c:149:19: [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. label = (char *)strdup(labels[selection]); data/silx-0.13.1+dfsg/silx/io/specfile/src/sflabel.c:183: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. static char tmplab[40]; data/silx-0.13.1+dfsg/silx/io/specfile/src/sflabel.c:280:29: [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. sf->labels[i] = (char *) strdup(labarr[i]); data/silx-0.13.1+dfsg/silx/io/specfile/src/sflabel.c:321: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. static char tmpmot[40]; data/silx-0.13.1+dfsg/silx/io/specfile/src/sflabel.c:406:31: [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. sf->motor_names[i] = (char *)strdup(motarr[i]); data/silx-0.13.1+dfsg/silx/io/specfile/src/sflabel.c:453:19: [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. motor = (char *)strdup(motors[selection]); data/silx-0.13.1+dfsg/silx/io/specfile/src/sflabel.c:472: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. static char posstr[40]; data/silx-0.13.1+dfsg/silx/io/specfile/src/sflabel.c:483: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 localeBuffer[21]; data/silx-0.13.1+dfsg/silx/io/specfile/src/sflabel.c:561: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(sf->motor_pos,pos,motct * sizeof(double)); data/silx-0.13.1+dfsg/silx/io/specfile/src/sflabel.c:567: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(posarr,pos,motct * sizeof(double)); data/silx-0.13.1+dfsg/silx/io/specfile/src/sflists.c:114:6: [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(newobj, object, size); data/silx-0.13.1+dfsg/silx/io/specfile/src/sfmca.c:159:6: [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 strval[100]; data/silx-0.13.1+dfsg/silx/io/specfile/src/sfmca.c:170: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 localeBuffer[21]; data/silx-0.13.1+dfsg/silx/io/specfile/src/sftools.c:495:6: [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(ret, tmpret, i * sizeof(double) ); data/silx-0.13.1+dfsg/silx/io/specfile/src/sfwrite.c:518:21: [2] (misc) open: 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 ( (output = open(name, O_CREAT | O_RDWR | O_APPEND, SF_UMASK )) == (int)NULL ) { data/silx-0.13.1+dfsg/silx/math/fit/filters/src/smoothnd.c:102: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(output, input, len_input * sizeof(double)); data/silx-0.13.1+dfsg/silx/math/fit/filters/src/smoothnd.c:135: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(data, output, len_input * sizeof(double)); data/silx-0.13.1+dfsg/silx/math/fit/filters/src/strip.c:74: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(output, input, len_input * sizeof(double)); data/silx-0.13.1+dfsg/silx/math/fit/filters/src/strip.c:103: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(input, output, len_input * sizeof(double)); data/silx-0.13.1+dfsg/silx/math/fit/filters/src/strip.c:114: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(input, output, len_input * sizeof(double)); data/silx-0.13.1+dfsg/silx/io/specfile/src/sfheader.c:583:38: [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 ( string == (char *) NULL || strlen(string) == 0) data/silx-0.13.1+dfsg/silx/io/specfile/src/sfheader.c:603: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 ( j=0; j < strlen(string) && ptr+j< to;j++) data/silx-0.13.1+dfsg/silx/io/specfile/src/sfheader.c:605: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). if ( j == strlen(string)) { data/silx-0.13.1+dfsg/silx/io/specfile/src/sfheader.c:623:33: [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 ( j=0; j < strlen(string) && (ptr + j) < to;j++) data/silx-0.13.1+dfsg/silx/io/specfile/src/sfheader.c:625:28: [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 ( j == strlen(string)) { data/silx-0.13.1+dfsg/silx/io/specfile/src/sfheader.c:771:14: [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). line += strlen( word ); data/silx-0.13.1+dfsg/silx/io/specfile/src/sfheader.c:781:49: [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). ret = (char *)malloc( sizeof(char) * ( 1 + strlen( line )) ); data/silx-0.13.1+dfsg/silx/io/specfile/src/sfheader.c:788:46: [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). memcpy( ret, line, sizeof(char) * ( 1 + strlen( line )) ); data/silx-0.13.1+dfsg/silx/io/specfile/src/sfindex.c:486:15: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). nbytes = read(sf->fd,buffer,size); data/silx-0.13.1+dfsg/silx/io/specfile/src/sfinit.c:506:24: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). while ((bytesread = read(fd,buffer,size)) > 0 ) { data/silx-0.13.1+dfsg/silx/io/specfile/src/sfinit.c:557: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). namelength = strlen(sf->sfname) + strlen(SF_ISFX) + 1; data/silx-0.13.1+dfsg/silx/io/specfile/src/sfinit.c:557:39: [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). namelength = strlen(sf->sfname) + strlen(SF_ISFX) + 1; data/silx-0.13.1+dfsg/silx/io/specfile/src/sfinit.c:585:17: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). bytesread = read(sfi,buffer,sizeof(SF_SIGNATURE)); data/silx-0.13.1+dfsg/silx/io/specfile/src/sfinit.c:593:10: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). if ( read(sfi,&mtime, sizeof(long)) == 0) return(SF_INIT); data/silx-0.13.1+dfsg/silx/io/specfile/src/sfinit.c:594:10: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). if ( read(sfi,&filecurs, sizeof(SfCursor)) == 0) return(SF_INIT); data/silx-0.13.1+dfsg/silx/io/specfile/src/sfinit.c:598:11: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). while(read(sfi,&scan, sizeof(SpecScan))) { data/silx-0.13.1+dfsg/silx/io/specfile/src/sfinit.c:621: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). namelength = strlen(sf->sfname) + strlen(SF_ISFX) + 1; data/silx-0.13.1+dfsg/silx/io/specfile/src/sfinit.c:621:39: [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). namelength = strlen(sf->sfname) + strlen(SF_ISFX) + 1; data/silx-0.13.1+dfsg/silx/io/specfile/src/sfinit.c:808:9: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). read(sf->fd,buffer,sizeof(buffer)); data/silx-0.13.1+dfsg/silx/io/specfile/src/sflabel.c:242: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). while((ptr < buf + strlen(buf) -1) && (*ptr == ' ')) ptr++; data/silx-0.13.1+dfsg/silx/io/specfile/src/sflabel.c:244: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 (i=0;ptr < buf + strlen(buf) -1;ptr++,i++) { data/silx-0.13.1+dfsg/silx/io/specfile/src/sflabel.c:255:48: [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(;*(ptr+1) == ' ' && ptr < buf+strlen(buf)-1;ptr++); data/silx-0.13.1+dfsg/silx/io/specfile/src/sflabel.c:367: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). endline = thisline + strlen(thisline); data/silx-0.13.1+dfsg/silx/io/specfile/src/sflabel.c:524: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). endline = thisline + strlen(thisline); data/silx-0.13.1+dfsg/silx/io/specfile/src/sftools.c:154:15: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). nbytes = read(sf->fd,sf->scanbuffer,scan->size); data/silx-0.13.1+dfsg/silx/io/specfile/src/sftools.c:190:22: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). nbytes = read(sf->fd,sf->filebuffer,fileheadsize); ANALYSIS SUMMARY: Hits = 82 Lines analyzed = 10987 in approximately 0.46 seconds (23787 lines/second) Physical Source Lines of Code (SLOC) = 6768 Hits@level = [0] 45 [1] 26 [2] 45 [3] 0 [4] 11 [5] 0 Hits@level+ = [0+] 127 [1+] 82 [2+] 56 [3+] 11 [4+] 11 [5+] 0 Hits/KSLOC@level+ = [0+] 18.7648 [1+] 12.1158 [2+] 8.27423 [3+] 1.6253 [4+] 1.6253 [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.