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/r-cran-ragg-0.4.0/src/AggDeviceJpeg.h Examining data/r-cran-ragg-0.4.0/src/ppm_dev.cpp Examining data/r-cran-ragg-0.4.0/src/AggDevice16.h Examining data/r-cran-ragg-0.4.0/src/ragg.h Examining data/r-cran-ragg-0.4.0/src/agg/include/agg_arc.h Examining data/r-cran-ragg-0.4.0/src/agg/include/agg_conv_adaptor_vpgen.h Examining data/r-cran-ragg-0.4.0/src/agg/include/agg_span_gradient_alpha.h Examining data/r-cran-ragg-0.4.0/src/agg/include/agg_path_length.h Examining data/r-cran-ragg-0.4.0/src/agg/include/agg_conv_shorten_path.h Examining data/r-cran-ragg-0.4.0/src/agg/include/agg_dda_line.h Examining data/r-cran-ragg-0.4.0/src/agg/include/agg_rendering_buffer.h Examining data/r-cran-ragg-0.4.0/src/agg/include/agg_conv_marker_adaptor.h Examining data/r-cran-ragg-0.4.0/src/agg/include/agg_pixfmt_transposer.h Examining data/r-cran-ragg-0.4.0/src/agg/include/agg_simul_eq.h Examining data/r-cran-ragg-0.4.0/src/agg/include/agg_math_stroke.h Examining data/r-cran-ragg-0.4.0/src/agg/include/agg_arrowhead.h Examining data/r-cran-ragg-0.4.0/src/agg/include/agg_conv_contour.h Examining data/r-cran-ragg-0.4.0/src/agg/include/agg_pixfmt_rgb_packed.h Examining data/r-cran-ragg-0.4.0/src/agg/include/agg_vpgen_clip_polygon.h Examining data/r-cran-ragg-0.4.0/src/agg/include/agg_scanline_u.h Examining data/r-cran-ragg-0.4.0/src/agg/include/agg_trans_single_path.h Examining data/r-cran-ragg-0.4.0/src/agg/include/agg_conv_smooth_poly1.h Examining data/r-cran-ragg-0.4.0/src/agg/include/agg_span_interpolator_adaptor.h Examining data/r-cran-ragg-0.4.0/src/agg/include/agg_span_subdiv_adaptor.h Examining data/r-cran-ragg-0.4.0/src/agg/include/agg_conv_stroke.h Examining data/r-cran-ragg-0.4.0/src/agg/include/agg_shorten_path.h Examining data/r-cran-ragg-0.4.0/src/agg/include/agg_conv_bspline.h Examining data/r-cran-ragg-0.4.0/src/agg/include/agg_conv_gpc.h Examining data/r-cran-ragg-0.4.0/src/agg/include/agg_basics.h Examining data/r-cran-ragg-0.4.0/src/agg/include/agg_renderer_raster_text.h Examining data/r-cran-ragg-0.4.0/src/agg/include/agg_rasterizer_outline_aa.h Examining data/r-cran-ragg-0.4.0/src/agg/include/agg_ellipse_bresenham.h Examining data/r-cran-ragg-0.4.0/src/agg/include/agg_trans_warp_magnifier.h Examining data/r-cran-ragg-0.4.0/src/agg/include/agg_span_gradient.h Examining data/r-cran-ragg-0.4.0/src/agg/include/agg_scanline_boolean_algebra.h Examining data/r-cran-ragg-0.4.0/src/agg/include/agg_span_pattern_rgba.h Examining data/r-cran-ragg-0.4.0/src/agg/include/agg_rasterizer_cells_aa.h Examining data/r-cran-ragg-0.4.0/src/agg/include/agg_bspline.h Examining data/r-cran-ragg-0.4.0/src/agg/include/agg_span_converter.h Examining data/r-cran-ragg-0.4.0/src/agg/include/agg_math.h Examining data/r-cran-ragg-0.4.0/src/agg/include/agg_trans_viewport.h Examining data/r-cran-ragg-0.4.0/src/agg/include/agg_scanline_storage_aa.h Examining data/r-cran-ragg-0.4.0/src/agg/include/agg_span_image_filter_rgba.h Examining data/r-cran-ragg-0.4.0/src/agg/include/agg_vcgen_bspline.h Examining data/r-cran-ragg-0.4.0/src/agg/include/agg_curves.h Examining data/r-cran-ragg-0.4.0/src/agg/include/agg_renderer_mclip.h Examining data/r-cran-ragg-0.4.0/src/agg/include/agg_span_image_filter_gray.h Examining data/r-cran-ragg-0.4.0/src/agg/include/agg_bounding_rect.h Examining data/r-cran-ragg-0.4.0/src/agg/include/agg_font_freetype.h Examining data/r-cran-ragg-0.4.0/src/agg/include/agg_gamma_lut.h Examining data/r-cran-ragg-0.4.0/src/agg/include/agg_vcgen_vertex_sequence.h Examining data/r-cran-ragg-0.4.0/src/agg/include/agg_trans_bilinear.h Examining data/r-cran-ragg-0.4.0/src/agg/include/agg_pixfmt_rgb.h Examining data/r-cran-ragg-0.4.0/src/agg/include/agg_span_gradient_image.h Examining data/r-cran-ragg-0.4.0/src/agg/include/agg_gsv_text.h Examining data/r-cran-ragg-0.4.0/src/agg/include/agg_pixfmt_gray.h Examining data/r-cran-ragg-0.4.0/src/agg/include/agg_span_allocator.h Examining data/r-cran-ragg-0.4.0/src/agg/include/agg_span_gouraud_gray.h Examining data/r-cran-ragg-0.4.0/src/agg/include/agg_conv_curve.h Examining data/r-cran-ragg-0.4.0/src/agg/include/agg_span_interpolator_linear.h Examining data/r-cran-ragg-0.4.0/src/agg/include/agg_vcgen_stroke.h Examining data/r-cran-ragg-0.4.0/src/agg/include/agg_config.h Examining data/r-cran-ragg-0.4.0/src/agg/include/agg_line_aa_basics.h Examining data/r-cran-ragg-0.4.0/src/agg/include/agg_scanline_storage_bin.h Examining data/r-cran-ragg-0.4.0/src/agg/include/agg_embedded_raster_fonts.h Examining data/r-cran-ragg-0.4.0/src/agg/include/agg_rasterizer_compound_aa.h Examining data/r-cran-ragg-0.4.0/src/agg/include/agg_rasterizer_scanline_aa.h Examining data/r-cran-ragg-0.4.0/src/agg/include/agg_rendering_buffer_dynarow.h Examining data/r-cran-ragg-0.4.0/src/agg/include/agg_span_gouraud_rgba.h Examining data/r-cran-ragg-0.4.0/src/agg/include/agg_conv_transform.h Examining data/r-cran-ragg-0.4.0/src/agg/include/agg_path_storage_integer.h Examining data/r-cran-ragg-0.4.0/src/agg/include/agg_pixfmt_amask_adaptor.h Examining data/r-cran-ragg-0.4.0/src/agg/include/agg_rasterizer_sl_clip.h Examining data/r-cran-ragg-0.4.0/src/agg/include/agg_renderer_markers.h Examining data/r-cran-ragg-0.4.0/src/agg/include/agg_conv_segmentator.h Examining data/r-cran-ragg-0.4.0/src/agg/include/agg_renderer_outline_image.h Examining data/r-cran-ragg-0.4.0/src/agg/include/agg_conv_clip_polygon.h Examining data/r-cran-ragg-0.4.0/src/agg/include/agg_span_interpolator_persp.h Examining data/r-cran-ragg-0.4.0/src/agg/include/agg_span_gouraud.h Examining data/r-cran-ragg-0.4.0/src/agg/include/agg_scanline_bin.h Examining data/r-cran-ragg-0.4.0/src/agg/include/agg_alpha_mask_u8.h Examining data/r-cran-ragg-0.4.0/src/agg/include/agg_conv_dash.h Examining data/r-cran-ragg-0.4.0/src/agg/include/agg_gamma_functions.h Examining data/r-cran-ragg-0.4.0/src/agg/include/agg_glyph_raster_bin.h Examining data/r-cran-ragg-0.4.0/src/agg/include/agg_renderer_scanline.h Examining data/r-cran-ragg-0.4.0/src/agg/include/agg_conv_unclose_polygon.h Examining data/r-cran-ragg-0.4.0/src/agg/include/agg_vcgen_dash.h Examining data/r-cran-ragg-0.4.0/src/agg/include/agg_font_cache_manager2.h Examining data/r-cran-ragg-0.4.0/src/agg/include/agg_color_rgba.h Examining data/r-cran-ragg-0.4.0/src/agg/include/agg_bezier_arc.h Examining data/r-cran-ragg-0.4.0/src/agg/include/agg_vcgen_markers_term.h Examining data/r-cran-ragg-0.4.0/src/agg/include/agg_span_gradient_contour.h Examining data/r-cran-ragg-0.4.0/src/agg/include/agg_conv_concat.h Examining data/r-cran-ragg-0.4.0/src/agg/include/agg_blur.h Examining data/r-cran-ragg-0.4.0/src/agg/include/agg_trans_perspective.h Examining data/r-cran-ragg-0.4.0/src/agg/include/agg_bitset_iterator.h Examining data/r-cran-ragg-0.4.0/src/agg/include/agg_conv_adaptor_vcgen.h Examining data/r-cran-ragg-0.4.0/src/agg/include/agg_span_solid.h Examining data/r-cran-ragg-0.4.0/src/agg/include/agg_renderer_primitives.h Examining data/r-cran-ragg-0.4.0/src/agg/include/util/agg_color_conv.h Examining data/r-cran-ragg-0.4.0/src/agg/include/agg_vcgen_contour.h Examining data/r-cran-ragg-0.4.0/src/agg/include/agg_clip_liang_barsky.h Examining data/r-cran-ragg-0.4.0/src/agg/include/agg_scanline_p.h Examining data/r-cran-ragg-0.4.0/src/agg/include/agg_vpgen_clip_polyline.h Examining data/r-cran-ragg-0.4.0/src/agg/include/agg_rounded_rect.h Examining data/r-cran-ragg-0.4.0/src/agg/include/agg_trans_affine.h Examining data/r-cran-ragg-0.4.0/src/agg/include/agg_trans_double_path.h Examining data/r-cran-ragg-0.4.0/src/agg/include/agg_renderer_outline_aa.h Examining data/r-cran-ragg-0.4.0/src/agg/include/agg_rasterizer_scanline_aa_nogamma.h Examining data/r-cran-ragg-0.4.0/src/agg/include/agg_span_image_filter.h Examining data/r-cran-ragg-0.4.0/src/agg/include/agg_span_interpolator_trans.h Examining data/r-cran-ragg-0.4.0/src/agg/include/agg_vertex_sequence.h Examining data/r-cran-ragg-0.4.0/src/agg/include/agg_renderer_base.h Examining data/r-cran-ragg-0.4.0/src/agg/include/agg_pattern_filters_rgba.h Examining data/r-cran-ragg-0.4.0/src/agg/include/agg_ellipse.h Examining data/r-cran-ragg-0.4.0/src/agg/include/agg_image_filters.h Examining data/r-cran-ragg-0.4.0/src/agg/include/agg_conv_clip_polyline.h Examining data/r-cran-ragg-0.4.0/src/agg/include/agg_color_gray.h Examining data/r-cran-ragg-0.4.0/src/agg/include/agg_vcgen_smooth_poly1.h Examining data/r-cran-ragg-0.4.0/src/agg/include/agg_span_pattern_gray.h Examining data/r-cran-ragg-0.4.0/src/agg/include/agg_conv_close_polygon.h Examining data/r-cran-ragg-0.4.0/src/agg/include/agg_span_image_filter_rgb.h Examining data/r-cran-ragg-0.4.0/src/agg/include/agg_pixfmt_base.h Examining data/r-cran-ragg-0.4.0/src/agg/include/agg_vpgen_segmentator.h Examining data/r-cran-ragg-0.4.0/src/agg/include/agg_font_cache_manager.h Examining data/r-cran-ragg-0.4.0/src/agg/include/agg_conv_marker.h Examining data/r-cran-ragg-0.4.0/src/agg/include/agg_array.h Examining data/r-cran-ragg-0.4.0/src/agg/include/agg_span_pattern_rgb.h Examining data/r-cran-ragg-0.4.0/src/agg/include/agg_pixfmt_rgba.h Examining data/r-cran-ragg-0.4.0/src/agg/include/agg_rasterizer_outline.h Examining data/r-cran-ragg-0.4.0/src/agg/include/agg_gradient_lut.h Examining data/r-cran-ragg-0.4.0/src/agg/include/agg_path_storage.h Examining data/r-cran-ragg-0.4.0/src/agg/include/agg_image_accessors.h Examining data/r-cran-ragg-0.4.0/src/agg/src/agg_trans_affine.cpp Examining data/r-cran-ragg-0.4.0/src/agg/src/agg_curves.cpp Examining data/r-cran-ragg-0.4.0/src/agg/src/agg_vcgen_stroke.cpp Examining data/r-cran-ragg-0.4.0/src/agg/src/agg_vcgen_dash.cpp Examining data/r-cran-ragg-0.4.0/src/agg/src/agg_font_freetype.cpp Examining data/r-cran-ragg-0.4.0/src/init.cpp Examining data/r-cran-ragg-0.4.0/src/png_dev.cpp Examining data/r-cran-ragg-0.4.0/src/AggDeviceCapture.h Examining data/r-cran-ragg-0.4.0/src/AggDeviceTiff.h Examining data/r-cran-ragg-0.4.0/src/AggDevice.h Examining data/r-cran-ragg-0.4.0/src/tiff_dev.cpp Examining data/r-cran-ragg-0.4.0/src/AggDevicePng.h Examining data/r-cran-ragg-0.4.0/src/init_device.h Examining data/r-cran-ragg-0.4.0/src/text_renderer.h Examining data/r-cran-ragg-0.4.0/src/AggDevicePpm.h Examining data/r-cran-ragg-0.4.0/src/capture_dev.cpp Examining data/r-cran-ragg-0.4.0/src/jpeg_dev.cpp FINAL RESULTS: data/r-cran-ragg-0.4.0/src/AggDeviceJpeg.h:29:5: [4] (format) snprintf: If format strings can be influenced by an attacker, they can be exploited, and note that sprintf variations do not always \0-terminate (CWE-134). Use a constant for the format specification. snprintf(buf, PATH_MAX, this->file.c_str(), this->pageno); buf[PATH_MAX] = '\0'; data/r-cran-ragg-0.4.0/src/AggDevicePng.h:24:5: [4] (format) snprintf: If format strings can be influenced by an attacker, they can be exploited, and note that sprintf variations do not always \0-terminate (CWE-134). Use a constant for the format specification. snprintf(buf, PATH_MAX, this->file.c_str(), this->pageno); buf[PATH_MAX] = '\0'; data/r-cran-ragg-0.4.0/src/AggDevicePng.h:93:5: [4] (format) snprintf: If format strings can be influenced by an attacker, they can be exploited, and note that sprintf variations do not always \0-terminate (CWE-134). Use a constant for the format specification. snprintf(buf, PATH_MAX, this->file.c_str(), this->pageno); buf[PATH_MAX] = '\0'; data/r-cran-ragg-0.4.0/src/AggDevicePpm.h:18:5: [4] (format) snprintf: If format strings can be influenced by an attacker, they can be exploited, and note that sprintf variations do not always \0-terminate (CWE-134). Use a constant for the format specification. snprintf(buf, PATH_MAX, this->file.c_str(), this->pageno); buf[PATH_MAX] = '\0'; data/r-cran-ragg-0.4.0/src/AggDeviceTiff.h:27:5: [4] (format) snprintf: If format strings can be influenced by an attacker, they can be exploited, and note that sprintf variations do not always \0-terminate (CWE-134). Use a constant for the format specification. snprintf(buf, PATH_MAX, this->file.c_str(), this->pageno); buf[PATH_MAX] = '\0'; data/r-cran-ragg-0.4.0/src/AggDeviceTiff.h:97:5: [4] (format) snprintf: If format strings can be influenced by an attacker, they can be exploited, and note that sprintf variations do not always \0-terminate (CWE-134). Use a constant for the format specification. snprintf(buf, PATH_MAX, this->file.c_str(), this->pageno); buf[PATH_MAX] = '\0'; data/r-cran-ragg-0.4.0/src/agg/include/agg_font_cache_manager.h:64:18: [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). std::strcpy(m_font_signature, font_signature); data/r-cran-ragg-0.4.0/src/agg/src/agg_font_freetype.cpp:662:26: [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). std::strcpy(m_face_names[m_num_faces], font_name); data/r-cran-ragg-0.4.0/src/agg/src/agg_font_freetype.cpp:852:18: [4] (buffer) sprintf: Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or vsnprintf. std::sprintf(m_signature, data/r-cran-ragg-0.4.0/src/agg/src/agg_font_freetype.cpp:878:22: [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). std::strcat(m_signature, buf); data/r-cran-ragg-0.4.0/src/AggDeviceJpeg.h:28:5: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char buf[PATH_MAX+1]; data/r-cran-ragg-0.4.0/src/AggDeviceJpeg.h:30:16: [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). FILE* fd = fopen(buf, "wb"); data/r-cran-ragg-0.4.0/src/AggDevicePng.h:23:5: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char buf[PATH_MAX+1]; data/r-cran-ragg-0.4.0/src/AggDevicePng.h:25:16: [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). FILE* fd = fopen(buf, "wb"); data/r-cran-ragg-0.4.0/src/AggDevicePng.h:92:5: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char buf[PATH_MAX+1]; data/r-cran-ragg-0.4.0/src/AggDevicePng.h:94:16: [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). FILE* fd = fopen(buf, "wb"); data/r-cran-ragg-0.4.0/src/AggDevicePpm.h:17:5: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char buf[PATH_MAX+1]; data/r-cran-ragg-0.4.0/src/AggDevicePpm.h:19:16: [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). FILE* fd = fopen(buf, "wb"); data/r-cran-ragg-0.4.0/src/AggDeviceTiff.h:26:5: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char buf[PATH_MAX+1]; data/r-cran-ragg-0.4.0/src/AggDeviceTiff.h:96:5: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char buf[PATH_MAX+1]; data/r-cran-ragg-0.4.0/src/agg/include/agg_array.h:56:18: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. std::memcpy(m_array, c, sizeof(T) * Size); data/r-cran-ragg-0.4.0/src/agg/include/agg_array.h:61:18: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. std::memcpy(m_array, c, sizeof(T) * Size); data/r-cran-ragg-0.4.0/src/agg/include/agg_array.h:124:18: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. std::memcpy(m_array, v.m_array, sizeof(T) * m_size); data/r-cran-ragg-0.4.0/src/agg/include/agg_array.h:138:18: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. std::memcpy(m_array, v.m_array, sizeof(T) * m_size); data/r-cran-ragg-0.4.0/src/agg/include/agg_array.h:249:22: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. std::memcpy(data, m_array, m_size * sizeof(T)); data/r-cran-ragg-0.4.0/src/agg/include/agg_array.h:272:14: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. std::memcpy(m_array, v.m_array, sizeof(T) * v.m_size); data/r-cran-ragg-0.4.0/src/agg/include/agg_array.h:280:27: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. if(v.m_size) std::memcpy(m_array, v.m_array, sizeof(T) * v.m_size); data/r-cran-ragg-0.4.0/src/agg/include/agg_array.h:287:25: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. if(m_size) std::memcpy(ptr, m_array, m_size * sizeof(T)); data/r-cran-ragg-0.4.0/src/agg/include/agg_array.h:296:28: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. if(byte_size) std::memcpy(m_array, data, byte_size * sizeof(T)); data/r-cran-ragg-0.4.0/src/agg/include/agg_array.h:589:18: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. std::memcpy(m_blocks[i], v.m_blocks[i], block_size * sizeof(T)); data/r-cran-ragg-0.4.0/src/agg/include/agg_array.h:606:18: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. std::memcpy(m_blocks[i], v.m_blocks[i], block_size * sizeof(T)); data/r-cran-ragg-0.4.0/src/agg/include/agg_array.h:623:22: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. std::memcpy(new_blocks, data/r-cran-ragg-0.4.0/src/agg/include/agg_array.h:723:18: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. std::memcpy(ptr, &(*this)[i], sizeof(T)); data/r-cran-ragg-0.4.0/src/agg/include/agg_array.h:737:18: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. std::memcpy(ptr, data, sizeof(T)); data/r-cran-ragg-0.4.0/src/agg/include/agg_array.h:760:22: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. std::memcpy(&((*this)[start + i]), data, sizeof(T)); data/r-cran-ragg-0.4.0/src/agg/include/agg_array.h:765:22: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. std::memcpy(ptr, data, sizeof(T)); data/r-cran-ragg-0.4.0/src/agg/include/agg_array.h:868:26: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. std::memcpy(new_blocks, data/r-cran-ragg-0.4.0/src/agg/include/agg_blur.h:1360:18: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. std::memcpy(r1, r0, w * sizeof(pixel_type)); data/r-cran-ragg-0.4.0/src/agg/include/agg_blur.h:1374:26: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. std::memcpy(r2, r1, w * sizeof(pixel_type)); // duplicate bottom row data/r-cran-ragg-0.4.0/src/agg/include/agg_font_cache_manager.h:175:26: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. std::memcpy(m_fonts, data/r-cran-ragg-0.4.0/src/agg/include/agg_gsv_text.h:91: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. char m_chr[2]; data/r-cran-ragg-0.4.0/src/agg/include/agg_path_storage.h:310:22: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. std::memcpy(new_coords, data/r-cran-ragg-0.4.0/src/agg/include/agg_path_storage.h:314:22: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. std::memcpy(new_cmds, data/r-cran-ragg-0.4.0/src/agg/include/agg_path_storage_integer.h:127:22: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. std::memcpy(ptr, &m_storage[i], sizeof(vertex_integer_type)); data/r-cran-ragg-0.4.0/src/agg/include/agg_path_storage_integer.h:269:18: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. std::memcpy(&v, m_ptr, sizeof(vertex_integer_type)); data/r-cran-ragg-0.4.0/src/agg/include/agg_pixfmt_amask_adaptor.h:57:18: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. std::memcpy(&m_span[0], covers, len * sizeof(cover_type)); data/r-cran-ragg-0.4.0/src/agg/include/agg_rasterizer_cells_aa.h:483:26: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. std::memcpy(new_cells, m_cells, m_max_blocks * sizeof(cell_type*)); data/r-cran-ragg-0.4.0/src/agg/include/agg_rendering_buffer.h:109:22: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. std::memcpy(row_ptr(0, y, w), src.row_ptr(y), l); data/r-cran-ragg-0.4.0/src/agg/include/agg_rendering_buffer.h:239:22: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. std::memcpy(row_ptr(0, y, w), src.row_ptr(y), l); data/r-cran-ragg-0.4.0/src/agg/include/agg_scanline_p.h:107:18: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. std::memcpy(m_cover_ptr, covers, len * sizeof(cover_type)); data/r-cran-ragg-0.4.0/src/agg/include/agg_scanline_p.h:263:18: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. std::memcpy(m_cover_ptr, covers, len * sizeof(cover_type)); data/r-cran-ragg-0.4.0/src/agg/include/agg_scanline_storage_aa.h:100:22: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. std::memcpy(ptr, cells, sizeof(T) * num_cells); data/r-cran-ragg-0.4.0/src/agg/include/agg_scanline_storage_aa.h:106:18: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. std::memcpy(s.ptr, cells, sizeof(T) * num_cells); data/r-cran-ragg-0.4.0/src/agg/include/agg_scanline_storage_aa.h:147:22: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. std::memcpy(dst.ptr, src.ptr, dst.len * sizeof(T)); data/r-cran-ragg-0.4.0/src/agg/include/agg_scanline_storage_aa.h:482:30: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. std::memcpy(data, covers, sizeof(T)); data/r-cran-ragg-0.4.0/src/agg/include/agg_scanline_storage_aa.h:487:30: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. std::memcpy(data, covers, unsigned(sp.len) * sizeof(T)); data/r-cran-ragg-0.4.0/src/agg/include/agg_scanline_u.h:172:18: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. std::memcpy(&m_covers[x], covers, len * sizeof(cover_type)); data/r-cran-ragg-0.4.0/src/agg/include/agg_scanline_u.h:387:18: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. std::memcpy(&m_covers[x], covers, len * sizeof(cover_type)); data/r-cran-ragg-0.4.0/src/agg/include/agg_trans_viewport.h:206:18: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. std::memcpy(ptr, this, sizeof(*this)); data/r-cran-ragg-0.4.0/src/agg/include/agg_trans_viewport.h:211:18: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. std::memcpy(this, ptr, sizeof(*this)); data/r-cran-ragg-0.4.0/src/agg/src/agg_font_freetype.cpp:631:26: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. std::memcpy(m_faces, data/r-cran-ragg-0.4.0/src/agg/src/agg_font_freetype.cpp:634:26: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. std::memcpy(m_face_names, data/r-cran-ragg-0.4.0/src/agg/src/agg_font_freetype.cpp:637:26: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. std::memcpy(m_face_indices, data/r-cran-ragg-0.4.0/src/agg/src/agg_font_freetype.cpp:843:26: [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 gamma_table[rasterizer_scanline_aa<>::aa_scale]; data/r-cran-ragg-0.4.0/src/agg/src/agg_font_freetype.cpp:869:17: [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/r-cran-ragg-0.4.0/src/agg/src/agg_font_freetype.cpp:871:22: [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. std::sprintf(buf, ",%08X%08X%08X%08X%08X%08X", data/r-cran-ragg-0.4.0/src/text_renderer.h:40:14: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. static const char trailingBytesForUTF8[256] = { data/r-cran-ragg-0.4.0/src/agg/include/agg_array.h:1031:50: [1] (buffer) equal: Function does not check the second iterator for over-read conditions (CWE-126). This function is often discouraged by most C++ coding standards in favor of its safer alternatives provided since C++14. Consider using a form of this function that checks the second iterator before potentially overflowing it. unsigned remove_duplicates(Array& arr, Equal equal) data/r-cran-ragg-0.4.0/src/agg/include/agg_array.h:1039:17: [1] (buffer) equal: Function does not check the second iterator for over-read conditions (CWE-126). This function is often discouraged by most C++ coding standards in favor of its safer alternatives provided since C++14. Consider using a form of this function that checks the second iterator before potentially overflowing it. if(!equal(e, arr[i - 1])) data/r-cran-ragg-0.4.0/src/agg/include/agg_font_cache_manager.h:63:65: [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). m_font_signature = (char*)m_allocator.allocate(std::strlen(font_signature) + 1); data/r-cran-ragg-0.4.0/src/agg/src/agg_font_freetype.cpp:661:64: [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). m_face_names[m_num_faces] = new char [std::strlen(font_name) + 1]; data/r-cran-ragg-0.4.0/src/agg/src/agg_font_freetype.cpp:830:38: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). unsigned name_len = std::strlen(m_name); data/r-cran-ragg-0.4.0/src/text_renderer.h:112:19: [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 n_bytes = strlen(string) + 1; data/r-cran-ragg-0.4.0/src/text_renderer.h:205: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). int expected_max = strlen(string) * 16; ANALYSIS SUMMARY: Hits = 74 Lines analyzed = 50727 in approximately 0.90 seconds (56442 lines/second) Physical Source Lines of Code (SLOC) = 37211 Hits@level = [0] 1 [1] 7 [2] 57 [3] 0 [4] 10 [5] 0 Hits@level+ = [0+] 75 [1+] 74 [2+] 67 [3+] 10 [4+] 10 [5+] 0 Hits/KSLOC@level+ = [0+] 2.01553 [1+] 1.98866 [2+] 1.80054 [3+] 0.268738 [4+] 0.268738 [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.