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/pgsphere-1.1.1+2020-10-20/box.c Examining data/pgsphere-1.1.1+2020-10-20/box.h Examining data/pgsphere-1.1.1+2020-10-20/circle.c Examining data/pgsphere-1.1.1+2020-10-20/circle.h Examining data/pgsphere-1.1.1+2020-10-20/ellipse.c Examining data/pgsphere-1.1.1+2020-10-20/ellipse.h Examining data/pgsphere-1.1.1+2020-10-20/euler.c Examining data/pgsphere-1.1.1+2020-10-20/euler.h Examining data/pgsphere-1.1.1+2020-10-20/gist.c Examining data/pgsphere-1.1.1+2020-10-20/gist.h Examining data/pgsphere-1.1.1+2020-10-20/gnomo.c Examining data/pgsphere-1.1.1+2020-10-20/gnomo.h Examining data/pgsphere-1.1.1+2020-10-20/gq_cache.c Examining data/pgsphere-1.1.1+2020-10-20/healpix.c Examining data/pgsphere-1.1.1+2020-10-20/healpix_bare/healpix_bare.c Examining data/pgsphere-1.1.1+2020-10-20/healpix_bare/healpix_bare.h Examining data/pgsphere-1.1.1+2020-10-20/healpix_bare/test.c Examining data/pgsphere-1.1.1+2020-10-20/key.c Examining data/pgsphere-1.1.1+2020-10-20/key.h Examining data/pgsphere-1.1.1+2020-10-20/line.c Examining data/pgsphere-1.1.1+2020-10-20/line.h Examining data/pgsphere-1.1.1+2020-10-20/moc.c Examining data/pgsphere-1.1.1+2020-10-20/output.c Examining data/pgsphere-1.1.1+2020-10-20/path.c Examining data/pgsphere-1.1.1+2020-10-20/path.h Examining data/pgsphere-1.1.1+2020-10-20/pg_sphere.h Examining data/pgsphere-1.1.1+2020-10-20/pgs_chealpix.h Examining data/pgsphere-1.1.1+2020-10-20/pgs_healpix.h Examining data/pgsphere-1.1.1+2020-10-20/pgs_moc.h Examining data/pgsphere-1.1.1+2020-10-20/pgs_process_moc.h Examining data/pgsphere-1.1.1+2020-10-20/pgs_util.h Examining data/pgsphere-1.1.1+2020-10-20/point.c Examining data/pgsphere-1.1.1+2020-10-20/point.h Examining data/pgsphere-1.1.1+2020-10-20/polygon.c Examining data/pgsphere-1.1.1+2020-10-20/polygon.h Examining data/pgsphere-1.1.1+2020-10-20/process_moc.cpp Examining data/pgsphere-1.1.1+2020-10-20/sbuffer.c Examining data/pgsphere-1.1.1+2020-10-20/sbuffer.h Examining data/pgsphere-1.1.1+2020-10-20/sparse.c Examining data/pgsphere-1.1.1+2020-10-20/sparse.h Examining data/pgsphere-1.1.1+2020-10-20/sscan.c Examining data/pgsphere-1.1.1+2020-10-20/types.h Examining data/pgsphere-1.1.1+2020-10-20/vector3d.c Examining data/pgsphere-1.1.1+2020-10-20/vector3d.h FINAL RESULTS: data/pgsphere-1.1.1+2020-10-20/output.c:164:2: [4] (buffer) sprintf: Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or vsnprintf. sprintf(buf, "SET %s", c); data/pgsphere-1.1.1+2020-10-20/output.c:243:4: [4] (buffer) sprintf: Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or vsnprintf. sprintf(buffer, "<%s , %.*gd>", data/pgsphere-1.1.1+2020-10-20/output.c:251:4: [4] (buffer) sprintf: Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or vsnprintf. sprintf(buffer, data/pgsphere-1.1.1+2020-10-20/output.c:258:4: [4] (buffer) sprintf: Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or vsnprintf. sprintf(buffer, "<%s , %.*g>", data/pgsphere-1.1.1+2020-10-20/output.c:289:4: [4] (buffer) sprintf: Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or vsnprintf. sprintf(buffer, data/pgsphere-1.1.1+2020-10-20/output.c:302:4: [4] (buffer) sprintf: Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or vsnprintf. sprintf(buffer, data/pgsphere-1.1.1+2020-10-20/output.c:311:4: [4] (buffer) sprintf: Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or vsnprintf. sprintf( data/pgsphere-1.1.1+2020-10-20/output.c:350:4: [4] (buffer) sprintf: Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or vsnprintf. sprintf(out, data/pgsphere-1.1.1+2020-10-20/output.c:359:4: [4] (buffer) sprintf: Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or vsnprintf. sprintf(out, data/pgsphere-1.1.1+2020-10-20/output.c:365:4: [4] (buffer) sprintf: Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or vsnprintf. sprintf(out, data/pgsphere-1.1.1+2020-10-20/output.c:426:3: [4] (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). strcat(buffer, &buf[0]); data/pgsphere-1.1.1+2020-10-20/output.c:456:2: [4] (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). strcat(buffer, etype); data/pgsphere-1.1.1+2020-10-20/output.c:478:3: [4] (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). strcat(out, tmp); data/pgsphere-1.1.1+2020-10-20/output.c:502:3: [4] (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). strcat(out, tmp); data/pgsphere-1.1.1+2020-10-20/output.c:521:2: [4] (buffer) sprintf: Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or vsnprintf. sprintf(buffer, "(%s, %s)", str1, str2); data/pgsphere-1.1.1+2020-10-20/pgs_process_moc.h:131:23: [4] (format) printf: If format strings can be influenced by an attacker, they can be exploited (CWE-134). Use a constant for the format specification. __attribute__((format(printf, 2, 3))) data/pgsphere-1.1.1+2020-10-20/process_moc.cpp:81:3: [4] (format) vsprintf: Potential format string problem (CWE-134). Make format string constant. vsprintf(buffer, fm, arguments); data/pgsphere-1.1.1+2020-10-20/sparse.c:709:21: [4] (format) fprintf: If format strings can be influenced by an attacker, they can be exploited (CWE-134). Use a constant for the format specification. # define YYFPRINTF fprintf data/pgsphere-1.1.1+2020-10-20/polygon.c:655:5: [3] (random) srand: This function is not sufficiently random for security-related functions such as key and nonce creation (CWE-327). Use a more secure technique for acquiring random values. srand(cntr); data/pgsphere-1.1.1+2020-10-20/box.c: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((void *) &sp, (void *) &box->sw, sizeof(SPoint)); data/pgsphere-1.1.1+2020-10-20/box.c:90: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((void *) &box->sw, (void *) &box->ne, sizeof(SPoint)); data/pgsphere-1.1.1+2020-10-20/box.c:91: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((void *) &box->ne, (void *) &sp, sizeof(SPoint)); data/pgsphere-1.1.1+2020-10-20/box.c:883: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((void *) &box->sw, (void *) p1, sizeof(SPoint)); data/pgsphere-1.1.1+2020-10-20/box.c:884: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((void *) &box->ne, (void *) p2, sizeof(SPoint)); data/pgsphere-1.1.1+2020-10-20/box.c:895: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((void *) p, (void *) &box->sw, sizeof(SPoint)); data/pgsphere-1.1.1+2020-10-20/box.c:905: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((void *) p, (void *) &box->ne, sizeof(SPoint)); data/pgsphere-1.1.1+2020-10-20/circle.c:332: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((void *) p, (void *) &c->center, sizeof(SPoint)); data/pgsphere-1.1.1+2020-10-20/circle.c:350: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((void *) &c->center, (void *) p, sizeof(SPoint)); data/pgsphere-1.1.1+2020-10-20/circle.c:368: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((void *) &c->center, (void *) p, sizeof(SPoint)); data/pgsphere-1.1.1+2020-10-20/ellipse.c:98: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((void *) &sc->center, (void *) &sp, sizeof(SPoint)); data/pgsphere-1.1.1+2020-10-20/ellipse.c:425: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((void *) &sp[2], (void *) &sp[1], sizeof(SPoint)); data/pgsphere-1.1.1+2020-10-20/ellipse.c:431: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((void *) &sp[2], (void *) &sp[1], sizeof(SPoint)); data/pgsphere-1.1.1+2020-10-20/ellipse.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((void *) &sp[0], (void *) &sp[1], sizeof(SPoint)); data/pgsphere-1.1.1+2020-10-20/ellipse.c:440: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((void *) &sp[2], (void *) &sp[0], sizeof(SPoint)); data/pgsphere-1.1.1+2020-10-20/ellipse.c:441: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((void *) &sp[0], (void *) &sp[1], sizeof(SPoint)); data/pgsphere-1.1.1+2020-10-20/ellipse.c:445: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((void *) &sp[0], (void *) &sp[1], sizeof(SPoint)); data/pgsphere-1.1.1+2020-10-20/ellipse.c:451: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((void *) &sp[2], (void *) &sp[1], sizeof(SPoint)); data/pgsphere-1.1.1+2020-10-20/ellipse.c:455: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((void *) &sp[0], (void *) &sp[1], sizeof(SPoint)); data/pgsphere-1.1.1+2020-10-20/ellipse.c:460: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((void *) &sp[0], (void *) &sp[2], sizeof(SPoint)); data/pgsphere-1.1.1+2020-10-20/ellipse.c:461: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((void *) &sp[2], (void *) &sp[1], sizeof(SPoint)); data/pgsphere-1.1.1+2020-10-20/ellipse.c:466: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((void *) &sp[1], (void *) &sp[0], sizeof(SPoint)); data/pgsphere-1.1.1+2020-10-20/ellipse.c:467: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((void *) &sp[0], (void *) &sp[2], sizeof(SPoint)); data/pgsphere-1.1.1+2020-10-20/ellipse.c:468: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((void *) &sp[2], (void *) &sp[1], sizeof(SPoint)); data/pgsphere-1.1.1+2020-10-20/euler.c:47:11: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. unsigned char etype[3]; data/pgsphere-1.1.1+2020-10-20/euler.c:230: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 ret[4]; data/pgsphere-1.1.1+2020-10-20/euler.c:263: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((void *) VARDATA(result), (void *) &ret[0], 3); data/pgsphere-1.1.1+2020-10-20/euler.c:287: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((void *) se_out, (void *) se_in, sizeof(SEuler)); data/pgsphere-1.1.1+2020-10-20/euler.c:298: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((void *) ret, (void *) se, sizeof(SEuler)); data/pgsphere-1.1.1+2020-10-20/euler.c:443: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((void *) se, (void *) &set, sizeof(SEuler)); data/pgsphere-1.1.1+2020-10-20/euler.c:523: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((void *) &u[0], (void *) &vr[0], sizeof(u)); data/pgsphere-1.1.1+2020-10-20/gist.c:103: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(buffer, "(%.9f,%.9f,%.9f),(%.9f,%.9f,%.9f)", data/pgsphere-1.1.1+2020-10-20/gist.c:181: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(buffer, "(%.9f,%.9f)", k->lng, k->lat); data/pgsphere-1.1.1+2020-10-20/gist.c:185: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(buffer, "(%.9f,%.9f,%.9f),(%.9f,%.9f,%.9f)", data/pgsphere-1.1.1+2020-10-20/gist.c:321: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((void *) ret, data/pgsphere-1.1.1+2020-10-20/gist.c:368: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(ret->k, p, KEYSIZE); data/pgsphere-1.1.1+2020-10-20/gist.c:1976: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(intervalsUpper, intervalsLower, data/pgsphere-1.1.1+2020-10-20/gist.c:2321: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(leftKey->k, DatumGetPointer(v->spl_ldatum), KEYSIZE); data/pgsphere-1.1.1+2020-10-20/gist.c:2322: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(rightKey->k, DatumGetPointer(v->spl_rdatum), KEYSIZE); data/pgsphere-1.1.1+2020-10-20/gq_cache.c:102: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((void *) cquery, (void *) query, sizeof(type)); \ data/pgsphere-1.1.1+2020-10-20/gq_cache.c:137: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((void *) cquery, data/pgsphere-1.1.1+2020-10-20/gq_cache.c:144: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((void *) cquery, data/pgsphere-1.1.1+2020-10-20/gq_cache.c: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((void *) &kcache[0], (void *) key, KEYSIZE); data/pgsphere-1.1.1+2020-10-20/key.c:402: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((void *) key, (void *) &tk[0], KEYSIZE); data/pgsphere-1.1.1+2020-10-20/key.c:462: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((void *) key, (void *) &tk[0], KEYSIZE); data/pgsphere-1.1.1+2020-10-20/key.h:23: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 vl_len_[4]; data/pgsphere-1.1.1+2020-10-20/key.h:36: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 vl_len_[4]; data/pgsphere-1.1.1+2020-10-20/line.c:253: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((void *) &nl, (void *) sl, sizeof(SLine)); data/pgsphere-1.1.1+2020-10-20/line.c:312: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((void *) p1, (void *) p2, sizeof(SPoint)); data/pgsphere-1.1.1+2020-10-20/line.c:650:11: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. unsigned char etype[3]; data/pgsphere-1.1.1+2020-10-20/moc.c:391:4: [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, "Set output type to MOC-ASCII (0)."); data/pgsphere-1.1.1+2020-10-20/moc.c:394:4: [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, "Set output type to MOC intervals (1)."); data/pgsphere-1.1.1+2020-10-20/output.c:132: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(buf, "SET %d", c); data/pgsphere-1.1.1+2020-10-20/output.c:186:4: [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, "(%.*gd , %.*gd)", data/pgsphere-1.1.1+2020-10-20/output.c:194:4: [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, data/pgsphere-1.1.1+2020-10-20/output.c:204:4: [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, data/pgsphere-1.1.1+2020-10-20/output.c:212:4: [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, "(%.*g , %.*g)", data/pgsphere-1.1.1+2020-10-20/output.c:380: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 buf[100]; data/pgsphere-1.1.1+2020-10-20/output.c:381: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 etype[4]; data/pgsphere-1.1.1+2020-10-20/output.c:408: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(&buf[0], data/pgsphere-1.1.1+2020-10-20/output.c:416: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(&buf[0], data/pgsphere-1.1.1+2020-10-20/output.c:422: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(&buf[0], "%.*g", sphere_output_precision, val[i].lng); data/pgsphere-1.1.1+2020-10-20/output.c:425: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(&buf[0], ", "); data/pgsphere-1.1.1+2020-10-20/output.c:531: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(buffer, "1.1.5"); data/pgsphere-1.1.1+2020-10-20/path.c:125: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((void *) &path->p[i], (void *) &arr[i], sizeof(SPoint)); data/pgsphere-1.1.1+2020-10-20/path.c:399: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((void *) sp, (void *) &path->p[i], sizeof(SPoint)); data/pgsphere-1.1.1+2020-10-20/path.c:627: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((void *) &ret->p[i], (void *) &path->p[n - i], sizeof(SPoint)); data/pgsphere-1.1.1+2020-10-20/path.c:983: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((void *) &path->p[0], (void *) p, sizeof(SPoint)); data/pgsphere-1.1.1+2020-10-20/path.c:1005: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((void *) path_new, (void *) path, VARSIZE(path)); data/pgsphere-1.1.1+2020-10-20/path.c:1010: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((void *) &path_new->p[path->npts], (void *) p, sizeof(SPoint)); data/pgsphere-1.1.1+2020-10-20/path.h:15: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 vl_len_[4]; /* total size in bytes */ data/pgsphere-1.1.1+2020-10-20/pgs_process_moc.h:41: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 start[HP64_SIZE]; data/pgsphere-1.1.1+2020-10-20/pgs_process_moc.h:57: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 vl_len_[4]; /* size of PostgreSQL variable-length data */ data/pgsphere-1.1.1+2020-10-20/polygon.c:233: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((void *) &poly->p[i], data/pgsphere-1.1.1+2020-10-20/polygon.c:661: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((void *) tmp, (void *) ttt, VARSIZE(pg)); data/pgsphere-1.1.1+2020-10-20/polygon.c:900: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((void *) &s[1], data/pgsphere-1.1.1+2020-10-20/polygon.c:903: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((void *) &s[0], (void *) &s[poly->npts], sizeof(SPoint)); data/pgsphere-1.1.1+2020-10-20/polygon.c:904: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((void *) &s[poly->npts + 1], (void *) &s[1], sizeof(SPoint)); data/pgsphere-1.1.1+2020-10-20/polygon.c:1362: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((void *) &poly->p[0], (void *) p, sizeof(SPoint)); data/pgsphere-1.1.1+2020-10-20/polygon.c:1384: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((void *) poly_new, (void *) poly, VARSIZE(poly)); data/pgsphere-1.1.1+2020-10-20/polygon.c:1388: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((void *) &poly_new->p[poly->npts], (void *) p, sizeof(SPoint)); data/pgsphere-1.1.1+2020-10-20/polygon.h:15: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 vl_len_[4]; /* total size in bytes */ data/pgsphere-1.1.1+2020-10-20/process_moc.cpp:77: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[2048]; data/pgsphere-1.1.1+2020-10-20/process_moc.cpp:736: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(s, "%d/", order); data/pgsphere-1.1.1+2020-10-20/process_moc.cpp:756:4: [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(s, "%d/", k); data/pgsphere-1.1.1+2020-10-20/process_moc.cpp:764:6: [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(s, "" MOC_FORMAT_64U " ", first); data/pgsphere-1.1.1+2020-10-20/process_moc.cpp:766:6: [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(s, "" MOC_FORMAT_64U "-" MOC_FORMAT_64U " ", first, last); data/pgsphere-1.1.1+2020-10-20/process_moc.cpp:784: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 s[60]; data/pgsphere-1.1.1+2020-10-20/process_moc.cpp:804:6: [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(s, "[" MOC_FORMAT_64U ", " MOC_FORMAT_64U ") ", x.first, x.second); data/pgsphere-1.1.1+2020-10-20/sbuffer.c:132: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((void *) bufpoints.p, (void *) p, bufpoints.m * sizeof(bpoint)); data/pgsphere-1.1.1+2020-10-20/sbuffer.c:381: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((void *) buf, (void *) parse_buffer, slen); data/pgsphere-1.1.1+2020-10-20/sparse.c:98: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 err[255]; data/pgsphere-1.1.1+2020-10-20/sparse.c:99: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(err, "minutes or seconds invalid (min:%f sec:%f)", m, s); data/pgsphere-1.1.1+2020-10-20/sparse.c:194: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 c[3]; data/pgsphere-1.1.1+2020-10-20/sparse.c:960: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 const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; data/pgsphere-1.1.1+2020-10-20/sparse.c:1149: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 yymsgbuf[128]; data/pgsphere-1.1.1+2020-10-20/sparse.h: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 c[3]; data/pgsphere-1.1.1+2020-10-20/sscan.c:1027: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). sphere_yylval.i = atoi(yytext); return INT; data/pgsphere-1.1.1+2020-10-20/sscan.c:1037:1: [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(&sphere_yylval.c[0], yytext, 3); return EULERAXIS; data/pgsphere-1.1.1+2020-10-20/output.c:469:2: [1] (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). Risk is low because the source is a constant character. strcpy(out, "{"); data/pgsphere-1.1.1+2020-10-20/output.c:474:4: [1] (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 character. strcat(out, ","); data/pgsphere-1.1.1+2020-10-20/output.c:481:2: [1] (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 character. strcat(out, "}"); data/pgsphere-1.1.1+2020-10-20/output.c:493:2: [1] (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). Risk is low because the source is a constant character. strcpy(out, "{"); data/pgsphere-1.1.1+2020-10-20/output.c:498:4: [1] (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 character. strcat(out, ","); data/pgsphere-1.1.1+2020-10-20/output.c:505:2: [1] (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 character. strcat(out, "}"); data/pgsphere-1.1.1+2020-10-20/sbuffer.c:370:13: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). int slen = strlen(parse_buffer); data/pgsphere-1.1.1+2020-10-20/sparse.c:857:21: [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). # define yystrlen strlen data/pgsphere-1.1.1+2020-10-20/sscan.c:857:14: [1] (buffer) getc: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). (c = getc( yyin )) != EOF && c != '\n'; ++n ) \ data/pgsphere-1.1.1+2020-10-20/sscan.c:1842:37: [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). return yy_scan_bytes( yystr, (int) strlen(yystr) ); ANALYSIS SUMMARY: Hits = 128 Lines analyzed = 21996 in approximately 0.51 seconds (43255 lines/second) Physical Source Lines of Code (SLOC) = 15588 Hits@level = [0] 18 [1] 10 [2] 99 [3] 1 [4] 18 [5] 0 Hits@level+ = [0+] 146 [1+] 128 [2+] 118 [3+] 19 [4+] 18 [5+] 0 Hits/KSLOC@level+ = [0+] 9.36618 [1+] 8.21144 [2+] 7.56993 [3+] 1.21889 [4+] 1.15473 [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.