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-reportlab-3.5.55/src/rl_addons/renderPM/_renderPM.c Examining data/python-reportlab-3.5.55/src/rl_addons/renderPM/libart_lgpl/art_svp_vpath.h Examining data/python-reportlab-3.5.55/src/rl_addons/renderPM/libart_lgpl/art_pathcode.h Examining data/python-reportlab-3.5.55/src/rl_addons/renderPM/libart_lgpl/art_rgb_affine_private.c Examining data/python-reportlab-3.5.55/src/rl_addons/renderPM/libart_lgpl/art_uta_rect.c Examining data/python-reportlab-3.5.55/src/rl_addons/renderPM/libart_lgpl/art_gray_svp.c Examining data/python-reportlab-3.5.55/src/rl_addons/renderPM/libart_lgpl/art_svp_vpath.c Examining data/python-reportlab-3.5.55/src/rl_addons/renderPM/libart_lgpl/art_vpath_bpath.c Examining data/python-reportlab-3.5.55/src/rl_addons/renderPM/libart_lgpl/libart.h Examining data/python-reportlab-3.5.55/src/rl_addons/renderPM/libart_lgpl/art_uta_ops.h Examining data/python-reportlab-3.5.55/src/rl_addons/renderPM/libart_lgpl/art_render_svp.h Examining data/python-reportlab-3.5.55/src/rl_addons/renderPM/libart_lgpl/art_rect_svp.c Examining data/python-reportlab-3.5.55/src/rl_addons/renderPM/libart_lgpl/art_render.h Examining data/python-reportlab-3.5.55/src/rl_addons/renderPM/libart_lgpl/art_rgb_rgba_affine.h Examining data/python-reportlab-3.5.55/src/rl_addons/renderPM/libart_lgpl/art_render_gradient.h Examining data/python-reportlab-3.5.55/src/rl_addons/renderPM/libart_lgpl/art_svp_wind.h Examining data/python-reportlab-3.5.55/src/rl_addons/renderPM/libart_lgpl/art_uta_rect.h Examining data/python-reportlab-3.5.55/src/rl_addons/renderPM/libart_lgpl/art_svp_intersect.c Examining data/python-reportlab-3.5.55/src/rl_addons/renderPM/libart_lgpl/art_affine.c Examining data/python-reportlab-3.5.55/src/rl_addons/renderPM/libart_lgpl/art_misc.h Examining data/python-reportlab-3.5.55/src/rl_addons/renderPM/libart_lgpl/art_rect_uta.h Examining data/python-reportlab-3.5.55/src/rl_addons/renderPM/libart_lgpl/art_misc.c Examining data/python-reportlab-3.5.55/src/rl_addons/renderPM/libart_lgpl/art_affine.h Examining data/python-reportlab-3.5.55/src/rl_addons/renderPM/libart_lgpl/art_svp_ops.h Examining data/python-reportlab-3.5.55/src/rl_addons/renderPM/libart_lgpl/art_vpath_dash.c Examining data/python-reportlab-3.5.55/src/rl_addons/renderPM/libart_lgpl/art_svp_ops.c Examining data/python-reportlab-3.5.55/src/rl_addons/renderPM/libart_lgpl/art_uta_vpath.c Examining data/python-reportlab-3.5.55/src/rl_addons/renderPM/libart_lgpl/art_pixbuf.h Examining data/python-reportlab-3.5.55/src/rl_addons/renderPM/libart_lgpl/config.h Examining data/python-reportlab-3.5.55/src/rl_addons/renderPM/libart_lgpl/art_rgb_bitmap_affine.c Examining data/python-reportlab-3.5.55/src/rl_addons/renderPM/libart_lgpl/art_uta_vpath.h Examining data/python-reportlab-3.5.55/src/rl_addons/renderPM/libart_lgpl/art_uta_svp.c Examining data/python-reportlab-3.5.55/src/rl_addons/renderPM/libart_lgpl/art_svp_render_aa.c Examining data/python-reportlab-3.5.55/src/rl_addons/renderPM/libart_lgpl/art_rgb_pixbuf_affine.c Examining data/python-reportlab-3.5.55/src/rl_addons/renderPM/libart_lgpl/gen_art_config.c Examining data/python-reportlab-3.5.55/src/rl_addons/renderPM/libart_lgpl/art_pixbuf.c Examining data/python-reportlab-3.5.55/src/rl_addons/renderPM/libart_lgpl/art_rgb.h Examining data/python-reportlab-3.5.55/src/rl_addons/renderPM/libart_lgpl/art_svp_point.h Examining data/python-reportlab-3.5.55/src/rl_addons/renderPM/libart_lgpl/art_rgba.c Examining data/python-reportlab-3.5.55/src/rl_addons/renderPM/libart_lgpl/art_rect.c Examining data/python-reportlab-3.5.55/src/rl_addons/renderPM/libart_lgpl/testart.c Examining data/python-reportlab-3.5.55/src/rl_addons/renderPM/libart_lgpl/art_rect.h Examining data/python-reportlab-3.5.55/src/rl_addons/renderPM/libart_lgpl/art_vpath_bpath.h Examining data/python-reportlab-3.5.55/src/rl_addons/renderPM/libart_lgpl/art_vpath_dash.h Examining data/python-reportlab-3.5.55/src/rl_addons/renderPM/libart_lgpl/art_rgba.h Examining data/python-reportlab-3.5.55/src/rl_addons/renderPM/libart_lgpl/art_uta.h Examining data/python-reportlab-3.5.55/src/rl_addons/renderPM/libart_lgpl/art_rgb_affine.c Examining data/python-reportlab-3.5.55/src/rl_addons/renderPM/libart_lgpl/art_rect_svp.h Examining data/python-reportlab-3.5.55/src/rl_addons/renderPM/libart_lgpl/art_vpath_svp.c Examining data/python-reportlab-3.5.55/src/rl_addons/renderPM/libart_lgpl/art_svp_vpath_stroke.h Examining data/python-reportlab-3.5.55/src/rl_addons/renderPM/libart_lgpl/art_bpath.h Examining data/python-reportlab-3.5.55/src/rl_addons/renderPM/libart_lgpl/art_filterlevel.h Examining data/python-reportlab-3.5.55/src/rl_addons/renderPM/libart_lgpl/art_config.h Examining data/python-reportlab-3.5.55/src/rl_addons/renderPM/libart_lgpl/art_rgb_svp.h Examining data/python-reportlab-3.5.55/src/rl_addons/renderPM/libart_lgpl/art_rgb_pixbuf_affine.h Examining data/python-reportlab-3.5.55/src/rl_addons/renderPM/libart_lgpl/testuta.c Examining data/python-reportlab-3.5.55/src/rl_addons/renderPM/libart_lgpl/art_uta_ops.c Examining data/python-reportlab-3.5.55/src/rl_addons/renderPM/libart_lgpl/art_rgb_affine.h Examining data/python-reportlab-3.5.55/src/rl_addons/renderPM/libart_lgpl/art_render_mask.h Examining data/python-reportlab-3.5.55/src/rl_addons/renderPM/libart_lgpl/art_uta.c Examining data/python-reportlab-3.5.55/src/rl_addons/renderPM/libart_lgpl/acconfig.h Examining data/python-reportlab-3.5.55/src/rl_addons/renderPM/libart_lgpl/art_svp_vpath_stroke.c Examining data/python-reportlab-3.5.55/src/rl_addons/renderPM/libart_lgpl/art_rgb.c Examining data/python-reportlab-3.5.55/src/rl_addons/renderPM/libart_lgpl/art_vpath.c Examining data/python-reportlab-3.5.55/src/rl_addons/renderPM/libart_lgpl/art_point.h Examining data/python-reportlab-3.5.55/src/rl_addons/renderPM/libart_lgpl/art_svp_point.c Examining data/python-reportlab-3.5.55/src/rl_addons/renderPM/libart_lgpl/art_vpath_svp.h Examining data/python-reportlab-3.5.55/src/rl_addons/renderPM/libart_lgpl/art_svp_intersect.h Examining data/python-reportlab-3.5.55/src/rl_addons/renderPM/libart_lgpl/art_render_gradient.c Examining data/python-reportlab-3.5.55/src/rl_addons/renderPM/libart_lgpl/art_rgb_a_affine.h Examining data/python-reportlab-3.5.55/src/rl_addons/renderPM/libart_lgpl/art_rgb_a_affine.c Examining data/python-reportlab-3.5.55/src/rl_addons/renderPM/libart_lgpl/art_uta_svp.h Examining data/python-reportlab-3.5.55/src/rl_addons/renderPM/libart_lgpl/art_svp.h Examining data/python-reportlab-3.5.55/src/rl_addons/renderPM/libart_lgpl/art_rgb_affine_private.h Examining data/python-reportlab-3.5.55/src/rl_addons/renderPM/libart_lgpl/art_alphagamma.h Examining data/python-reportlab-3.5.55/src/rl_addons/renderPM/libart_lgpl/test_gradient.c Examining data/python-reportlab-3.5.55/src/rl_addons/renderPM/libart_lgpl/art_svp.c Examining data/python-reportlab-3.5.55/src/rl_addons/renderPM/libart_lgpl/art_svp_wind.c Examining data/python-reportlab-3.5.55/src/rl_addons/renderPM/libart_lgpl/art_rgb_svp.c Examining data/python-reportlab-3.5.55/src/rl_addons/renderPM/libart_lgpl/art_rgb_rgba_affine.c Examining data/python-reportlab-3.5.55/src/rl_addons/renderPM/libart_lgpl/art_alphagamma.c Examining data/python-reportlab-3.5.55/src/rl_addons/renderPM/libart_lgpl/libart-features.c Examining data/python-reportlab-3.5.55/src/rl_addons/renderPM/libart_lgpl/art_bpath.c Examining data/python-reportlab-3.5.55/src/rl_addons/renderPM/libart_lgpl/art_render_mask.c Examining data/python-reportlab-3.5.55/src/rl_addons/renderPM/libart_lgpl/art_gray_svp.h Examining data/python-reportlab-3.5.55/src/rl_addons/renderPM/libart_lgpl/art_rgb_bitmap_affine.h Examining data/python-reportlab-3.5.55/src/rl_addons/renderPM/libart_lgpl/art_vpath.h Examining data/python-reportlab-3.5.55/src/rl_addons/renderPM/libart_lgpl/art_render.c Examining data/python-reportlab-3.5.55/src/rl_addons/renderPM/libart_lgpl/art_svp_render_aa.h Examining data/python-reportlab-3.5.55/src/rl_addons/renderPM/libart_lgpl/art_rect_uta.c Examining data/python-reportlab-3.5.55/src/rl_addons/renderPM/libart_lgpl/art_render_svp.c Examining data/python-reportlab-3.5.55/src/rl_addons/renderPM/gt1/gt1-region.h Examining data/python-reportlab-3.5.55/src/rl_addons/renderPM/gt1/parseAFM.c Examining data/python-reportlab-3.5.55/src/rl_addons/renderPM/gt1/gt1-dict.c Examining data/python-reportlab-3.5.55/src/rl_addons/renderPM/gt1/parseAFM.h Examining data/python-reportlab-3.5.55/src/rl_addons/renderPM/gt1/gt1-value.h Examining data/python-reportlab-3.5.55/src/rl_addons/renderPM/gt1/gt1-dict.h Examining data/python-reportlab-3.5.55/src/rl_addons/renderPM/gt1/gt1-misc.h Examining data/python-reportlab-3.5.55/src/rl_addons/renderPM/gt1/gt1-namecontext.c Examining data/python-reportlab-3.5.55/src/rl_addons/renderPM/gt1/gt1-namecontext.h Examining data/python-reportlab-3.5.55/src/rl_addons/renderPM/gt1/gt1-parset1.c Examining data/python-reportlab-3.5.55/src/rl_addons/renderPM/gt1/gt1-region.c Examining data/python-reportlab-3.5.55/src/rl_addons/renderPM/gt1/gt1-parset1.h Examining data/python-reportlab-3.5.55/src/rl_addons/rl_accel/hnjalloc.h Examining data/python-reportlab-3.5.55/src/rl_addons/rl_accel/hyphen.h Examining data/python-reportlab-3.5.55/src/rl_addons/rl_accel/hyphen.c Examining data/python-reportlab-3.5.55/src/rl_addons/rl_accel/_rl_accel.c Examining data/python-reportlab-3.5.55/src/rl_addons/rl_accel/pyHnjmodule.c Examining data/python-reportlab-3.5.55/src/rl_addons/rl_accel/hnjalloc.c FINAL RESULTS: data/python-reportlab-3.5.55/src/rl_addons/renderPM/_renderPM.c:1488:4: [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(name,ft_f->family_name); data/python-reportlab-3.5.55/src/rl_addons/renderPM/_renderPM.c:1491:5: [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(name,ft_f->style_name); data/python-reportlab-3.5.55/src/rl_addons/renderPM/gt1/parseAFM.c:310:21: [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(gfi->afmVersion, keyword); data/python-reportlab-3.5.55/src/rl_addons/renderPM/gt1/parseAFM.c:318:21: [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(gfi->fontName, keyword); data/python-reportlab-3.5.55/src/rl_addons/renderPM/gt1/parseAFM.c:324:21: [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(gfi->encodingScheme, keyword); data/python-reportlab-3.5.55/src/rl_addons/renderPM/gt1/parseAFM.c:329:21: [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(gfi->fullName, keyword); data/python-reportlab-3.5.55/src/rl_addons/renderPM/gt1/parseAFM.c:334:21: [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(gfi->familyName, keyword); data/python-reportlab-3.5.55/src/rl_addons/renderPM/gt1/parseAFM.c:339:21: [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(gfi->weight, keyword); data/python-reportlab-3.5.55/src/rl_addons/renderPM/gt1/parseAFM.c:364:21: [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(gfi->version, keyword); data/python-reportlab-3.5.55/src/rl_addons/renderPM/gt1/parseAFM.c:369:21: [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(gfi->notice, keyword); data/python-reportlab-3.5.55/src/rl_addons/renderPM/gt1/parseAFM.c:661:17: [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(temp->name, keyword); data/python-reportlab-3.5.55/src/rl_addons/renderPM/gt1/parseAFM.c:683:17: [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((*tail)->succ, keyword); data/python-reportlab-3.5.55/src/rl_addons/renderPM/gt1/parseAFM.c:686:17: [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((*tail)->lig, keyword); data/python-reportlab-3.5.55/src/rl_addons/renderPM/gt1/parseAFM.c:873:25: [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(fi->pkd[pos].name1, keyword); data/python-reportlab-3.5.55/src/rl_addons/renderPM/gt1/parseAFM.c:877:25: [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(fi->pkd[pos].name2, keyword); data/python-reportlab-3.5.55/src/rl_addons/renderPM/gt1/parseAFM.c:896:25: [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(fi->pkd[pos].name1, keyword); data/python-reportlab-3.5.55/src/rl_addons/renderPM/gt1/parseAFM.c:900:25: [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(fi->pkd[pos].name2, keyword); data/python-reportlab-3.5.55/src/rl_addons/renderPM/gt1/parseAFM.c:1007:25: [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(fi->ccd[pos].ccName, keyword); data/python-reportlab-3.5.55/src/rl_addons/renderPM/gt1/parseAFM.c:1027:25: [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(fi->ccd[pos].pieces[j].pccName, keyword); data/python-reportlab-3.5.55/src/rl_addons/renderPM/libart_lgpl/art_affine.c:237:8: [4] (buffer) sprintf: Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or vsnprintf. sprintf (str, "%s rotate", tmp); data/python-reportlab-3.5.55/src/rl_addons/renderPM/libart_lgpl/art_misc.c:43:3: [4] (format) vfprintf: If format strings can be influenced by an attacker, they can be exploited (CWE-134). Use a constant for the format specification. vfprintf (stderr, fmt, ap); data/python-reportlab-3.5.55/src/rl_addons/renderPM/libart_lgpl/art_misc.c:60:3: [4] (format) vfprintf: If format strings can be influenced by an attacker, they can be exploited (CWE-134). Use a constant for the format specification. vfprintf (stderr, fmt, ap); data/python-reportlab-3.5.55/src/rl_addons/renderPM/libart_lgpl/art_misc.c:76:3: [4] (format) vfprintf: If format strings can be influenced by an attacker, they can be exploited (CWE-134). Use a constant for the format specification. vfprintf (stderr, fmt, ap); data/python-reportlab-3.5.55/src/rl_addons/renderPM/libart_lgpl/art_misc.c:78:3: [4] (format) vfprintf: If format strings can be influenced by an attacker, they can be exploited (CWE-134). Use a constant for the format specification. vfprintf (stdout, fmt, ap); data/python-reportlab-3.5.55/src/rl_addons/rl_accel/_rl_accel.c:336:3: [4] (format) sprintf: Potential format string problem (CWE-134). Make format string constant. sprintf(s,_fp_fmts[l], d); data/python-reportlab-3.5.55/src/rl_addons/rl_accel/_rl_accel.c:387:4: [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(pB,pD); data/python-reportlab-3.5.55/src/rl_addons/renderPM/libart_lgpl/testuta.c:158: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 (atoi (argv[1])); data/python-reportlab-3.5.55/src/rl_addons/renderPM/_renderPM.c:901: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(orig, self->ctm, sizeof(A2DMX)); data/python-reportlab-3.5.55/src/rl_addons/renderPM/_renderPM.c:964: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(self->ctm, orig, sizeof(A2DMX)); data/python-reportlab-3.5.55/src/rl_addons/renderPM/_renderPM.c:1773: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(pfb=gt1_alloc(size),pystr,size); data/python-reportlab-3.5.55/src/rl_addons/renderPM/gt1/gt1-namecontext.c:47:37: [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. for (i = 0; (c = ((const unsigned char *)string)[i]) != '\0'; i++) data/python-reportlab-3.5.55/src/rl_addons/renderPM/gt1/gt1-namecontext.c:61:48: [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. result += (result << 3) + ((const unsigned char *)string)[i]; data/python-reportlab-3.5.55/src/rl_addons/renderPM/gt1/gt1-namecontext.c:102: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 (new, s, len); data/python-reportlab-3.5.55/src/rl_addons/renderPM/gt1/gt1-namecontext.c:125: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 (new, s, size); data/python-reportlab-3.5.55/src/rl_addons/renderPM/gt1/gt1-parset1.c:52:8: [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. const char hextab[16] = "0123456789abcdef"; data/python-reportlab-3.5.55/src/rl_addons/renderPM/gt1/gt1-parset1.c: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 (flat + flat_size, in + in_idx, length); data/python-reportlab-3.5.55/src/rl_addons/renderPM/gt1/gt1-parset1.c:155: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 (tc->source, input, length + 1); data/python-reportlab-3.5.55/src/rl_addons/renderPM/gt1/gt1-parset1.c:171: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 (tc->source, input->start, length + 1); data/python-reportlab-3.5.55/src/rl_addons/renderPM/gt1/gt1-parset1.c:384: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 (buf, tc->source + tc->index, buf_size); data/python-reportlab-3.5.55/src/rl_addons/renderPM/gt1/gt1-parset1.c:2543:22: [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. byte = ((unsigned char *)exe_stack[exe_stack_ptr].start)[i]; data/python-reportlab-3.5.55/src/rl_addons/renderPM/gt1/gt1-parset1.c:2548:22: [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. byte1 = ((unsigned char *)exe_stack[exe_stack_ptr].start)[++i]; data/python-reportlab-3.5.55/src/rl_addons/renderPM/gt1/gt1-parset1.c:2553:22: [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. byte1 = ((unsigned char *)exe_stack[exe_stack_ptr].start)[++i]; data/python-reportlab-3.5.55/src/rl_addons/renderPM/gt1/gt1-parset1.c:2558:22: [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. byte1 = ((unsigned char *)exe_stack[exe_stack_ptr].start)[++i]; data/python-reportlab-3.5.55/src/rl_addons/renderPM/gt1/gt1-parset1.c:2559:22: [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. byte2 = ((unsigned char *)exe_stack[exe_stack_ptr].start)[++i]; data/python-reportlab-3.5.55/src/rl_addons/renderPM/gt1/gt1-parset1.c:2560:22: [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. byte3 = ((unsigned char *)exe_stack[exe_stack_ptr].start)[++i]; data/python-reportlab-3.5.55/src/rl_addons/renderPM/gt1/gt1-parset1.c:2561:22: [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. byte4 = ((unsigned char *)exe_stack[exe_stack_ptr].start)[++i]; data/python-reportlab-3.5.55/src/rl_addons/renderPM/gt1/gt1-parset1.c:2567:22: [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. byte1 = ((unsigned char *)exe_stack[exe_stack_ptr].start)[++i]; data/python-reportlab-3.5.55/src/rl_addons/renderPM/gt1/gt1-parset1.c:2843: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 (new_fn, filename, i); data/python-reportlab-3.5.55/src/rl_addons/renderPM/gt1/gt1-parset1.c:2844: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 (new_fn + i, ext, size_ext); data/python-reportlab-3.5.55/src/rl_addons/renderPM/gt1/gt1-parset1.c:2916:10: [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). afm_f = fopen(afm_filename, "rb"); data/python-reportlab-3.5.55/src/rl_addons/renderPM/gt1/gt1-parset1.c:3036:7: [2] (misc) fopen: Check when opening files - can an attacker redirect it (via symlinks), force the opening of special file type (e.g., device files), move things around to create a race condition, control its ancestors, or change its contents? (CWE-362). f = fopen(filename, "rb"); data/python-reportlab-3.5.55/src/rl_addons/renderPM/gt1/gt1-parset1.c:3059: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. if (((unsigned char *)pfb)[0] == 128) flat = pfb_to_flat (pfb, pfb_size); data/python-reportlab-3.5.55/src/rl_addons/renderPM/gt1/gt1-parset1.c:3062: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 (flat, pfb, pfb_size); data/python-reportlab-3.5.55/src/rl_addons/renderPM/gt1/gt1-parset1.c:3213: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. if (((unsigned char *)pfb)[0] == 128) data/python-reportlab-3.5.55/src/rl_addons/renderPM/gt1/gt1-parset1.c:3218: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 (flat, pfb, pfb_size); data/python-reportlab-3.5.55/src/rl_addons/renderPM/gt1/gt1-region.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 (new, p, old_size); data/python-reportlab-3.5.55/src/rl_addons/renderPM/gt1/parseAFM.c:355:43: [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). gfi->underlinePosition = atoi(keyword); data/python-reportlab-3.5.55/src/rl_addons/renderPM/gt1/parseAFM.c:359:47: [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). gfi->underlineThickness = atoi(keyword); data/python-reportlab-3.5.55/src/rl_addons/renderPM/gt1/parseAFM.c:373:41: [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). gfi->fontBBox.llx = atoi(keyword); data/python-reportlab-3.5.55/src/rl_addons/renderPM/gt1/parseAFM.c:375:41: [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). gfi->fontBBox.lly = atoi(keyword); data/python-reportlab-3.5.55/src/rl_addons/renderPM/gt1/parseAFM.c:377:41: [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). gfi->fontBBox.urx = atoi(keyword); data/python-reportlab-3.5.55/src/rl_addons/renderPM/gt1/parseAFM.c:379:41: [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). gfi->fontBBox.ury = atoi(keyword); data/python-reportlab-3.5.55/src/rl_addons/renderPM/gt1/parseAFM.c:383:38: [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). gfi->capHeight = atoi(keyword); data/python-reportlab-3.5.55/src/rl_addons/renderPM/gt1/parseAFM.c:387:36: [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). gfi->xHeight = atoi(keyword); data/python-reportlab-3.5.55/src/rl_addons/renderPM/gt1/parseAFM.c:391:38: [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). gfi->descender = atoi(keyword); data/python-reportlab-3.5.55/src/rl_addons/renderPM/gt1/parseAFM.c:395:37: [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). gfi->ascender = atoi(keyword); data/python-reportlab-3.5.55/src/rl_addons/renderPM/gt1/parseAFM.c:457:24: [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). code = atoi(token(fp)); data/python-reportlab-3.5.55/src/rl_addons/renderPM/gt1/parseAFM.c:460:25: [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). width = atoi(token(fp)); data/python-reportlab-3.5.55/src/rl_addons/renderPM/gt1/parseAFM.c:559:27: [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). pos = atoi(keyword); data/python-reportlab-3.5.55/src/rl_addons/renderPM/gt1/parseAFM.c:569:36: [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). cwi[pos] = atoi(keyword); data/python-reportlab-3.5.55/src/rl_addons/renderPM/gt1/parseAFM.c:642:34: [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). temp->code = atoi(token(fp)); data/python-reportlab-3.5.55/src/rl_addons/renderPM/gt1/parseAFM.c:652:28: [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). temp->wx = atoi(token(fp)); data/python-reportlab-3.5.55/src/rl_addons/renderPM/gt1/parseAFM.c:653:28: [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). temp->wy = atoi(token(fp)); data/python-reportlab-3.5.55/src/rl_addons/renderPM/gt1/parseAFM.c:656:28: [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). temp->wx = atoi(token(fp)); data/python-reportlab-3.5.55/src/rl_addons/renderPM/gt1/parseAFM.c:664:38: [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). temp->charBBox.llx = atoi(token(fp)); data/python-reportlab-3.5.55/src/rl_addons/renderPM/gt1/parseAFM.c:665:38: [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). temp->charBBox.lly = atoi(token(fp)); data/python-reportlab-3.5.55/src/rl_addons/renderPM/gt1/parseAFM.c:666:38: [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). temp->charBBox.urx = atoi(token(fp)); data/python-reportlab-3.5.55/src/rl_addons/renderPM/gt1/parseAFM.c:667:38: [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). temp->charBBox.ury = atoi(token(fp)); data/python-reportlab-3.5.55/src/rl_addons/renderPM/gt1/parseAFM.c:769:47: [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). fi->tkd[pos].degree = atoi(keyword); data/python-reportlab-3.5.55/src/rl_addons/renderPM/gt1/parseAFM.c:879:45: [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). fi->pkd[pos].xamt = atoi(keyword); data/python-reportlab-3.5.55/src/rl_addons/renderPM/gt1/parseAFM.c:881:47: [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). fi->pkd[pos++].yamt = atoi(keyword); data/python-reportlab-3.5.55/src/rl_addons/renderPM/gt1/parseAFM.c:902:47: [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). fi->pkd[pos++].xamt = atoi(keyword); data/python-reportlab-3.5.55/src/rl_addons/renderPM/gt1/parseAFM.c:1009:52: [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). fi->ccd[pos].numOfPieces = atoi(keyword); data/python-reportlab-3.5.55/src/rl_addons/renderPM/gt1/parseAFM.c:1029:57: [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). fi->ccd[pos].pieces[j].deltax = atoi(keyword); data/python-reportlab-3.5.55/src/rl_addons/renderPM/gt1/parseAFM.c:1031:59: [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). fi->ccd[pos].pieces[j++].deltay = atoi(keyword); data/python-reportlab-3.5.55/src/rl_addons/renderPM/gt1/parseAFM.c:1124:29: [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). (*fi)->numOfChars = atoi(token(fp)); data/python-reportlab-3.5.55/src/rl_addons/renderPM/gt1/parseAFM.c:1176:42: [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). (*fi)->numOfTracks = atoi(keyword); data/python-reportlab-3.5.55/src/rl_addons/renderPM/gt1/parseAFM.c:1191:41: [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). (*fi)->numOfPairs = atoi(keyword); data/python-reportlab-3.5.55/src/rl_addons/renderPM/gt1/parseAFM.c:1206:41: [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). (*fi)->numOfComps = atoi(keyword); data/python-reportlab-3.5.55/src/rl_addons/renderPM/libart_lgpl/art_affine.c:111: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. art_ftoa (char str[80], double x) data/python-reportlab-3.5.55/src/rl_addons/renderPM/libart_lgpl/art_affine.c:131:11: [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. i = sprintf (p, "%06d", (int)floor ((x + EPSILON / 2) * 1e6)); data/python-reportlab-3.5.55/src/rl_addons/renderPM/libart_lgpl/art_affine.c:140:11: [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. i = sprintf (p, "%d", (int)floor (x + EPSILON / 2)); data/python-reportlab-3.5.55/src/rl_addons/renderPM/libart_lgpl/art_affine.c:160: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 (p, "%06d", ix); data/python-reportlab-3.5.55/src/rl_addons/renderPM/libart_lgpl/art_affine.c:170:10: [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. p += sprintf (p, "%g", x); data/python-reportlab-3.5.55/src/rl_addons/renderPM/libart_lgpl/art_affine.c:191:23: [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. art_affine_to_string (char str[128], const double src[6]) data/python-reportlab-3.5.55/src/rl_addons/renderPM/libart_lgpl/art_affine.c:193: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 tmp[80]; data/python-reportlab-3.5.55/src/rl_addons/renderPM/libart_lgpl/art_affine.c:222:8: [2] (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 string. strcpy (str + ix, " scale"); data/python-reportlab-3.5.55/src/rl_addons/renderPM/libart_lgpl/art_affine.c:252:4: [2] (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 string. strcpy (str + ix, " translate"); data/python-reportlab-3.5.55/src/rl_addons/renderPM/libart_lgpl/art_affine.c:265:3: [2] (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 string. strcpy (str + ix, "] concat"); data/python-reportlab-3.5.55/src/rl_addons/renderPM/libart_lgpl/art_affine.h:47:23: [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. art_affine_to_string (char str[128], const double src[6]); data/python-reportlab-3.5.55/src/rl_addons/renderPM/libart_lgpl/art_pixbuf.c:276: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 (result->pixels, pixbuf->pixels, size); data/python-reportlab-3.5.55/src/rl_addons/renderPM/libart_lgpl/art_render_gradient.c:255: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 (tmp_stops, gradient->stops, sizeof (ArtGradientStop)); data/python-reportlab-3.5.55/src/rl_addons/renderPM/libart_lgpl/art_render_gradient.c:260: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 (tmp_stops, gradient->stops, sizeof (ArtGradientStop) * n_stops); data/python-reportlab-3.5.55/src/rl_addons/renderPM/libart_lgpl/art_render_gradient.c:264: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 (tmp_stops, &gradient->stops[n_stops-1], sizeof (ArtGradientStop)); data/python-reportlab-3.5.55/src/rl_addons/renderPM/libart_lgpl/art_render_gradient.c:286: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 (stops, tmp_stops, sizeof (ArtGradientStop) * n_stops); data/python-reportlab-3.5.55/src/rl_addons/renderPM/libart_lgpl/art_render_gradient.c:291: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 (stops[n_stops * 2 - 1 - i].color, stops[i].color, sizeof (stops[i].color)); data/python-reportlab-3.5.55/src/rl_addons/renderPM/libart_lgpl/art_render_gradient.c:606:3: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy (image_source->gradient.stops, gradient->stops, sizeof (ArtGradientStop) * gradient->n_stops); data/python-reportlab-3.5.55/src/rl_addons/renderPM/libart_lgpl/art_render_gradient.c:710:3: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy (image_source->gradient.stops, gradient->stops, sizeof (ArtGradientStop) * gradient->n_stops); data/python-reportlab-3.5.55/src/rl_addons/renderPM/libart_lgpl/art_render_mask.c:79: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 (dst_line, src_line, z_width); data/python-reportlab-3.5.55/src/rl_addons/renderPM/libart_lgpl/art_svp_wind.c:1475:8: [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 (new_points, points, n_points * sizeof (ArtPoint)); data/python-reportlab-3.5.55/src/rl_addons/renderPM/libart_lgpl/art_vpath.c:207:7: [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). int open; data/python-reportlab-3.5.55/src/rl_addons/renderPM/libart_lgpl/art_vpath.c:230:12: [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 (!open && (i + 1 == size || src[i + 1].code != ART_LINETO)) data/python-reportlab-3.5.55/src/rl_addons/renderPM/libart_lgpl/test_gradient.c:265: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 buf[G_ASCII_DTOSTR_BUF_SIZE]; data/python-reportlab-3.5.55/src/rl_addons/renderPM/libart_lgpl/testart.c:49: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 str[128]; data/python-reportlab-3.5.55/src/rl_addons/renderPM/libart_lgpl/testuta.c:158:12: [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). srand (atoi (argv[1])); data/python-reportlab-3.5.55/src/rl_addons/rl_accel/_rl_accel.c:243: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(q,"!!!!!",5); data/python-reportlab-3.5.55/src/rl_addons/rl_accel/_rl_accel.c:313:9: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. static char s[30]; data/python-reportlab-3.5.55/src/rl_addons/rl_accel/_rl_accel.c:410: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[4]; data/python-reportlab-3.5.55/src/rl_addons/rl_accel/_rl_accel.c:416: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(buf,"%03o",c); data/python-reportlab-3.5.55/src/rl_addons/rl_accel/_rl_accel.c:525: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[20]; data/python-reportlab-3.5.55/src/rl_addons/rl_accel/_rl_accel.c:527: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,"0X%8.8lX",x); data/python-reportlab-3.5.55/src/rl_addons/rl_accel/hyphen.c:62: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 (new, s, l); data/python-reportlab-3.5.55/src/rl_addons/rl_accel/hyphen.c:235: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 buf[80]; data/python-reportlab-3.5.55/src/rl_addons/rl_accel/hyphen.c:236: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 word[80]; data/python-reportlab-3.5.55/src/rl_addons/rl_accel/hyphen.c:237: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 pattern[80]; data/python-reportlab-3.5.55/src/rl_addons/rl_accel/hyphen.c:244:7: [2] (misc) fopen: Check when opening files - can an attacker redirect it (via symlinks), force the opening of special file type (e.g., device files), move things around to create a race condition, control its ancestors, or change its contents? (CWE-362). f = fopen (fn, "r"); data/python-reportlab-3.5.55/src/rl_addons/rl_accel/hyphen.c:380: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 prep_word_buf[MAX_WORD]; data/python-reportlab-3.5.55/src/rl_addons/renderPM/_renderPM.c:1486:24: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). char *name = malloc(strlen(ft_f->family_name)+strlen(ft_f->style_name)+2); data/python-reportlab-3.5.55/src/rl_addons/renderPM/_renderPM.c:1486:50: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). char *name = malloc(strlen(ft_f->family_name)+strlen(ft_f->style_name)+2); data/python-reportlab-3.5.55/src/rl_addons/renderPM/_renderPM.c:1490:5: [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(name," "); data/python-reportlab-3.5.55/src/rl_addons/renderPM/gt1/gt1-namecontext.c:100:9: [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). len = strlen (s); data/python-reportlab-3.5.55/src/rl_addons/renderPM/gt1/gt1-parset1.c:153:11: [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). length = strlen (input); data/python-reportlab-3.5.55/src/rl_addons/renderPM/gt1/gt1-parset1.c:2835:12: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). size_fn = strlen (filename); data/python-reportlab-3.5.55/src/rl_addons/renderPM/gt1/gt1-parset1.c:2836: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). size_ext = strlen (ext); data/python-reportlab-3.5.55/src/rl_addons/renderPM/gt1/parseAFM.c:166:18: [1] (buffer) fgetc: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). while ((ch = fgetc(stream)) == ' ' || ch == lineterm || data/python-reportlab-3.5.55/src/rl_addons/renderPM/gt1/parseAFM.c:176:14: [1] (buffer) fgetc: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). ch = fgetc(stream); data/python-reportlab-3.5.55/src/rl_addons/renderPM/gt1/parseAFM.c:200:18: [1] (buffer) fgetc: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). while ((ch = fgetc(stream)) == ' ' || ch == '\t' ); data/python-reportlab-3.5.55/src/rl_addons/renderPM/gt1/parseAFM.c:207:14: [1] (buffer) fgetc: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). ch = fgetc(stream); data/python-reportlab-3.5.55/src/rl_addons/renderPM/gt1/parseAFM.c:309:55: [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). gfi->afmVersion = (char *) malloc(strlen(keyword) + 1); data/python-reportlab-3.5.55/src/rl_addons/renderPM/gt1/parseAFM.c:317:53: [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). gfi->fontName = (char *) malloc(strlen(keyword) + 1); data/python-reportlab-3.5.55/src/rl_addons/renderPM/gt1/parseAFM.c:323:29: [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). malloc(strlen(keyword) + 1); data/python-reportlab-3.5.55/src/rl_addons/renderPM/gt1/parseAFM.c:328:53: [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). gfi->fullName = (char *) malloc(strlen(keyword) + 1); data/python-reportlab-3.5.55/src/rl_addons/renderPM/gt1/parseAFM.c:333:55: [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). gfi->familyName = (char *) malloc(strlen(keyword) + 1); data/python-reportlab-3.5.55/src/rl_addons/renderPM/gt1/parseAFM.c:338:51: [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). gfi->weight = (char *) malloc(strlen(keyword) + 1); data/python-reportlab-3.5.55/src/rl_addons/renderPM/gt1/parseAFM.c:363:52: [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). gfi->version = (char *) malloc(strlen(keyword) + 1); data/python-reportlab-3.5.55/src/rl_addons/renderPM/gt1/parseAFM.c:368:51: [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). gfi->notice = (char *) malloc(strlen(keyword) + 1); data/python-reportlab-3.5.55/src/rl_addons/renderPM/gt1/parseAFM.c:660: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). temp->name = (char *) malloc(strlen(keyword) + 1); data/python-reportlab-3.5.55/src/rl_addons/renderPM/gt1/parseAFM.c:682: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). (*tail)->succ = (char *) malloc(strlen(keyword) + 1); data/python-reportlab-3.5.55/src/rl_addons/renderPM/gt1/parseAFM.c:685: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). (*tail)->lig = (char *) malloc(strlen(keyword) + 1); data/python-reportlab-3.5.55/src/rl_addons/renderPM/gt1/parseAFM.c:872:36: [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). malloc(strlen(keyword) + 1); data/python-reportlab-3.5.55/src/rl_addons/renderPM/gt1/parseAFM.c:876:36: [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). malloc(strlen(keyword) + 1); data/python-reportlab-3.5.55/src/rl_addons/renderPM/gt1/parseAFM.c:895:36: [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). malloc(strlen(keyword) + 1); data/python-reportlab-3.5.55/src/rl_addons/renderPM/gt1/parseAFM.c:899:36: [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). malloc(strlen(keyword) + 1); data/python-reportlab-3.5.55/src/rl_addons/renderPM/gt1/parseAFM.c:1006:36: [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). malloc(strlen(keyword) + 1); data/python-reportlab-3.5.55/src/rl_addons/renderPM/gt1/parseAFM.c:1026:40: [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). malloc(strlen(keyword) + 1); data/python-reportlab-3.5.55/src/rl_addons/renderPM/libart_lgpl/art_affine.c:119:7: [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 (str, "0"); data/python-reportlab-3.5.55/src/rl_addons/rl_accel/_rl_accel.c:338: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). l = (int)strlen(s)-1; data/python-reportlab-3.5.55/src/rl_addons/rl_accel/_rl_accel.c:388: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). pB = pB + strlen(pB); data/python-reportlab-3.5.55/src/rl_addons/rl_accel/hyphen.c:60: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). l = strlen (s); data/python-reportlab-3.5.55/src/rl_addons/rl_accel/hyphen.c:420:24: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). for (k = 0; k < i - strlen (state_str); k++) data/python-reportlab-3.5.55/src/rl_addons/rl_accel/hyphen.c:446: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). offset = i + 1 - strlen (match); data/python-reportlab-3.5.55/src/rl_addons/rl_accel/pyHnjmodule.c:120:35: [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). buffer = malloc(sizeof(char) * (strlen(word)+BORDER+1)); data/python-reportlab-3.5.55/src/rl_addons/rl_accel/pyHnjmodule.c:126:43: [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). hnj_hyphen_hyphenate(self->hdict, word, strlen(word), buffer); data/python-reportlab-3.5.55/src/rl_addons/rl_accel/pyHnjmodule.c:129:8: [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). (strlen(word) + countHyphenIntegers(buffer) + 1)); data/python-reportlab-3.5.55/src/rl_addons/rl_accel/pyHnjmodule.c:172:35: [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). buffer = malloc(sizeof(char) * (strlen(word)+border+1)); data/python-reportlab-3.5.55/src/rl_addons/rl_accel/pyHnjmodule.c:178:43: [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). hnj_hyphen_hyphenate(self->hdict, word, strlen(word), buffer); data/python-reportlab-3.5.55/src/rl_addons/rl_accel/pyHnjmodule.c:179:10: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). buffer[strlen(word)] = '\0'; ANALYSIS SUMMARY: Hits = 167 Lines analyzed = 27199 in approximately 0.73 seconds (37111 lines/second) Physical Source Lines of Code (SLOC) = 19026 Hits@level = [0] 341 [1] 40 [2] 100 [3] 1 [4] 26 [5] 0 Hits@level+ = [0+] 508 [1+] 167 [2+] 127 [3+] 27 [4+] 26 [5+] 0 Hits/KSLOC@level+ = [0+] 26.7003 [1+] 8.77746 [2+] 6.67508 [3+] 1.41911 [4+] 1.36655 [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.