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/cglm-0.7.9/include/cglm/affine-mat.h
Examining data/cglm-0.7.9/include/cglm/affine.h
Examining data/cglm-0.7.9/include/cglm/affine2d.h
Examining data/cglm-0.7.9/include/cglm/applesimd.h
Examining data/cglm-0.7.9/include/cglm/bezier.h
Examining data/cglm-0.7.9/include/cglm/box.h
Examining data/cglm-0.7.9/include/cglm/call.h
Examining data/cglm-0.7.9/include/cglm/call/affine.h
Examining data/cglm-0.7.9/include/cglm/call/affine2d.h
Examining data/cglm-0.7.9/include/cglm/call/bezier.h
Examining data/cglm-0.7.9/include/cglm/call/box.h
Examining data/cglm-0.7.9/include/cglm/call/cam.h
Examining data/cglm-0.7.9/include/cglm/call/curve.h
Examining data/cglm-0.7.9/include/cglm/call/ease.h
Examining data/cglm-0.7.9/include/cglm/call/euler.h
Examining data/cglm-0.7.9/include/cglm/call/frustum.h
Examining data/cglm-0.7.9/include/cglm/call/io.h
Examining data/cglm-0.7.9/include/cglm/call/mat2.h
Examining data/cglm-0.7.9/include/cglm/call/mat3.h
Examining data/cglm-0.7.9/include/cglm/call/mat4.h
Examining data/cglm-0.7.9/include/cglm/call/plane.h
Examining data/cglm-0.7.9/include/cglm/call/project.h
Examining data/cglm-0.7.9/include/cglm/call/quat.h
Examining data/cglm-0.7.9/include/cglm/call/ray.h
Examining data/cglm-0.7.9/include/cglm/call/sphere.h
Examining data/cglm-0.7.9/include/cglm/call/vec2.h
Examining data/cglm-0.7.9/include/cglm/call/vec3.h
Examining data/cglm-0.7.9/include/cglm/call/vec4.h
Examining data/cglm-0.7.9/include/cglm/cam.h
Examining data/cglm-0.7.9/include/cglm/cglm.h
Examining data/cglm-0.7.9/include/cglm/color.h
Examining data/cglm-0.7.9/include/cglm/common.h
Examining data/cglm-0.7.9/include/cglm/curve.h
Examining data/cglm-0.7.9/include/cglm/ease.h
Examining data/cglm-0.7.9/include/cglm/euler.h
Examining data/cglm-0.7.9/include/cglm/frustum.h
Examining data/cglm-0.7.9/include/cglm/io.h
Examining data/cglm-0.7.9/include/cglm/mat2.h
Examining data/cglm-0.7.9/include/cglm/mat3.h
Examining data/cglm-0.7.9/include/cglm/mat4.h
Examining data/cglm-0.7.9/include/cglm/plane.h
Examining data/cglm-0.7.9/include/cglm/project.h
Examining data/cglm-0.7.9/include/cglm/quat.h
Examining data/cglm-0.7.9/include/cglm/ray.h
Examining data/cglm-0.7.9/include/cglm/simd/arm.h
Examining data/cglm-0.7.9/include/cglm/simd/avx/affine.h
Examining data/cglm-0.7.9/include/cglm/simd/avx/mat4.h
Examining data/cglm-0.7.9/include/cglm/simd/intrin.h
Examining data/cglm-0.7.9/include/cglm/simd/neon/mat4.h
Examining data/cglm-0.7.9/include/cglm/simd/sse2/affine.h
Examining data/cglm-0.7.9/include/cglm/simd/sse2/mat2.h
Examining data/cglm-0.7.9/include/cglm/simd/sse2/mat3.h
Examining data/cglm-0.7.9/include/cglm/simd/sse2/mat4.h
Examining data/cglm-0.7.9/include/cglm/simd/sse2/quat.h
Examining data/cglm-0.7.9/include/cglm/simd/x86.h
Examining data/cglm-0.7.9/include/cglm/sphere.h
Examining data/cglm-0.7.9/include/cglm/struct.h
Examining data/cglm-0.7.9/include/cglm/struct/affine.h
Examining data/cglm-0.7.9/include/cglm/struct/affine2d.h
Examining data/cglm-0.7.9/include/cglm/struct/box.h
Examining data/cglm-0.7.9/include/cglm/struct/cam.h
Examining data/cglm-0.7.9/include/cglm/struct/color.h
Examining data/cglm-0.7.9/include/cglm/struct/curve.h
Examining data/cglm-0.7.9/include/cglm/struct/euler.h
Examining data/cglm-0.7.9/include/cglm/struct/frustum.h
Examining data/cglm-0.7.9/include/cglm/struct/io.h
Examining data/cglm-0.7.9/include/cglm/struct/mat2.h
Examining data/cglm-0.7.9/include/cglm/struct/mat3.h
Examining data/cglm-0.7.9/include/cglm/struct/mat4.h
Examining data/cglm-0.7.9/include/cglm/struct/plane.h
Examining data/cglm-0.7.9/include/cglm/struct/project.h
Examining data/cglm-0.7.9/include/cglm/struct/quat.h
Examining data/cglm-0.7.9/include/cglm/struct/sphere.h
Examining data/cglm-0.7.9/include/cglm/struct/vec2-ext.h
Examining data/cglm-0.7.9/include/cglm/struct/vec2.h
Examining data/cglm-0.7.9/include/cglm/struct/vec3-ext.h
Examining data/cglm-0.7.9/include/cglm/struct/vec3.h
Examining data/cglm-0.7.9/include/cglm/struct/vec4-ext.h
Examining data/cglm-0.7.9/include/cglm/struct/vec4.h
Examining data/cglm-0.7.9/include/cglm/types-struct.h
Examining data/cglm-0.7.9/include/cglm/types.h
Examining data/cglm-0.7.9/include/cglm/util.h
Examining data/cglm-0.7.9/include/cglm/vec2-ext.h
Examining data/cglm-0.7.9/include/cglm/vec2.h
Examining data/cglm-0.7.9/include/cglm/vec3-ext.h
Examining data/cglm-0.7.9/include/cglm/vec3.h
Examining data/cglm-0.7.9/include/cglm/vec4-ext.h
Examining data/cglm-0.7.9/include/cglm/vec4.h
Examining data/cglm-0.7.9/include/cglm/version.h
Examining data/cglm-0.7.9/src/affine.c
Examining data/cglm-0.7.9/src/affine2d.c
Examining data/cglm-0.7.9/src/bezier.c
Examining data/cglm-0.7.9/src/box.c
Examining data/cglm-0.7.9/src/cam.c
Examining data/cglm-0.7.9/src/config.h
Examining data/cglm-0.7.9/src/curve.c
Examining data/cglm-0.7.9/src/ease.c
Examining data/cglm-0.7.9/src/euler.c
Examining data/cglm-0.7.9/src/frustum.c
Examining data/cglm-0.7.9/src/io.c
Examining data/cglm-0.7.9/src/mat2.c
Examining data/cglm-0.7.9/src/mat3.c
Examining data/cglm-0.7.9/src/mat4.c
Examining data/cglm-0.7.9/src/plane.c
Examining data/cglm-0.7.9/src/project.c
Examining data/cglm-0.7.9/src/quat.c
Examining data/cglm-0.7.9/src/ray.c
Examining data/cglm-0.7.9/src/sphere.c
Examining data/cglm-0.7.9/src/swift/empty.c
Examining data/cglm-0.7.9/src/vec2.c
Examining data/cglm-0.7.9/src/vec3.c
Examining data/cglm-0.7.9/src/vec4.c
Examining data/cglm-0.7.9/test/include/common.h
Examining data/cglm-0.7.9/test/runner.c
Examining data/cglm-0.7.9/test/src/test_affine.h
Examining data/cglm-0.7.9/test/src/test_affine2d.h
Examining data/cglm-0.7.9/test/src/test_affine_mat.h
Examining data/cglm-0.7.9/test/src/test_bezier.c
Examining data/cglm-0.7.9/test/src/test_cam.c
Examining data/cglm-0.7.9/test/src/test_camera.h
Examining data/cglm-0.7.9/test/src/test_clamp.c
Examining data/cglm-0.7.9/test/src/test_common.c
Examining data/cglm-0.7.9/test/src/test_common.h
Examining data/cglm-0.7.9/test/src/test_euler.c
Examining data/cglm-0.7.9/test/src/test_mat2.h
Examining data/cglm-0.7.9/test/src/test_mat3.h
Examining data/cglm-0.7.9/test/src/test_mat4.h
Examining data/cglm-0.7.9/test/src/test_plane.h
Examining data/cglm-0.7.9/test/src/test_project.h
Examining data/cglm-0.7.9/test/src/test_quat.h
Examining data/cglm-0.7.9/test/src/test_ray.h
Examining data/cglm-0.7.9/test/src/test_struct.c
Examining data/cglm-0.7.9/test/src/test_vec2.h
Examining data/cglm-0.7.9/test/src/test_vec3.h
Examining data/cglm-0.7.9/test/src/test_vec4.h
Examining data/cglm-0.7.9/test/src/tests.c
Examining data/cglm-0.7.9/test/tests.h

FINAL RESULTS:

data/cglm-0.7.9/include/cglm/io.h:98:3:  [4] (format) fprintf:
  If format strings can be influenced by an attacker, they can be exploited
  (CWE-134). Use a constant for the format specification.
  fprintf(ostream, CGLM_PRINT_COLOR_RESET "\n");
data/cglm-0.7.9/include/cglm/io.h:141:3:  [4] (format) fprintf:
  If format strings can be influenced by an attacker, they can be exploited
  (CWE-134). Use a constant for the format specification.
  fprintf(ostream, CGLM_PRINT_COLOR_RESET "\n");
data/cglm-0.7.9/include/cglm/io.h:183:3:  [4] (format) fprintf:
  If format strings can be influenced by an attacker, they can be exploited
  (CWE-134). Use a constant for the format specification.
  fprintf(ostream, CGLM_PRINT_COLOR_RESET "\n");
data/cglm-0.7.9/include/cglm/io.h:320:3:  [4] (format) fprintf:
  If format strings can be influenced by an attacker, they can be exploited
  (CWE-134). Use a constant for the format specification.
  fprintf(ostream, CGLM_PRINT_COLOR_RESET "\n");
data/cglm-0.7.9/test/include/common.h:111:5:  [4] (format) fprintf:
  If format strings can be influenced by an attacker, they can be exploited
  (CWE-134). Use a constant for the format specification.
    fprintf(stderr,                                                           \
data/cglm-0.7.9/test/include/common.h:132:7:  [4] (format) fprintf:
  If format strings can be influenced by an attacker, they can be exploited
  (CWE-134). Use a constant for the format specification.
      fprintf(stderr,                                                         \
data/cglm-0.7.9/test/runner.c:28:3:  [4] (format) fprintf:
  If format strings can be influenced by an attacker, they can be exploited
  (CWE-134). Use a constant for the format specification.
  fprintf(stderr, CYAN "\nWelcome to cglm tests\n\n" RESET);
data/cglm-0.7.9/test/runner.c:43:3:  [4] (format) fprintf:
  If format strings can be influenced by an attacker, they can be exploited
  (CWE-134). Use a constant for the format specification.
  fprintf(stderr,
data/cglm-0.7.9/test/runner.c:56:7:  [4] (format) fprintf:
  If format strings can be influenced by an attacker, they can be exploited
  (CWE-134). Use a constant for the format specification.
      fprintf(stderr,
data/cglm-0.7.9/test/runner.c:59:9:  [4] (format) fprintf:
  If format strings can be influenced by an attacker, they can be exploited
  (CWE-134). Use a constant for the format specification.
        fprintf(stderr,
data/cglm-0.7.9/test/runner.c:68:7:  [4] (format) fprintf:
  If format strings can be influenced by an attacker, they can be exploited
  (CWE-134). Use a constant for the format specification.
      fprintf(stderr, GREEN  "  " OK_TEXT RESET " %-*s  ", maxlen, entry->name);
data/cglm-0.7.9/test/runner.c:71:9:  [4] (format) fprintf:
  If format strings can be influenced by an attacker, they can be exploited
  (CWE-134). Use a constant for the format specification.
        fprintf(stderr, YELLOW "%.2fs", elapsed);
data/cglm-0.7.9/test/runner.c:75:7:  [4] (format) fprintf:
  If format strings can be influenced by an attacker, they can be exploited
  (CWE-134). Use a constant for the format specification.
      fprintf(stderr, "\n" RESET);
data/cglm-0.7.9/test/runner.c:81:5:  [4] (format) fprintf:
  If format strings can be influenced by an attacker, they can be exploited
  (CWE-134). Use a constant for the format specification.
    fprintf(stderr,
data/cglm-0.7.9/test/runner.c:85:3:  [4] (format) fprintf:
  If format strings can be influenced by an attacker, they can be exploited
  (CWE-134). Use a constant for the format specification.
  fprintf(stderr,
data/cglm-0.7.9/test/include/common.h:145:10:  [3] (random) drand48:
  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.
# define drand48()  ((float)(rand() / (RAND_MAX + 1.0)))
data/cglm-0.7.9/test/runner.c:30:3:  [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((unsigned int)time(NULL));
data/cglm-0.7.9/test/src/test_affine_mat.h:45:18:  [3] (random) drand48:
  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.
  glm_rotate(m1, drand48(), (vec3){drand48(), drand48(), drand48()});
data/cglm-0.7.9/test/src/test_affine_mat.h:45:36:  [3] (random) drand48:
  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.
  glm_rotate(m1, drand48(), (vec3){drand48(), drand48(), drand48()});
data/cglm-0.7.9/test/src/test_affine_mat.h:45:47:  [3] (random) drand48:
  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.
  glm_rotate(m1, drand48(), (vec3){drand48(), drand48(), drand48()});
data/cglm-0.7.9/test/src/test_affine_mat.h:45:58:  [3] (random) drand48:
  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.
  glm_rotate(m1, drand48(), (vec3){drand48(), drand48(), drand48()});
data/cglm-0.7.9/test/src/test_affine_mat.h:46:18:  [3] (random) drand48:
  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.
  glm_rotate(m2, drand48(), (vec3){drand48(), drand48(), drand48()});
data/cglm-0.7.9/test/src/test_affine_mat.h:46:36:  [3] (random) drand48:
  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.
  glm_rotate(m2, drand48(), (vec3){drand48(), drand48(), drand48()});
data/cglm-0.7.9/test/src/test_affine_mat.h:46:47:  [3] (random) drand48:
  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.
  glm_rotate(m2, drand48(), (vec3){drand48(), drand48(), drand48()});
data/cglm-0.7.9/test/src/test_affine_mat.h:46:58:  [3] (random) drand48:
  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.
  glm_rotate(m2, drand48(), (vec3){drand48(), drand48(), drand48()});
data/cglm-0.7.9/test/src/test_common.c:14:16:  [3] (random) drand48:
  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.
  dest[3][0] = drand48();
data/cglm-0.7.9/test/src/test_common.c:15:16:  [3] (random) drand48:
  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.
  dest[3][1] = drand48();
data/cglm-0.7.9/test/src/test_common.c:16:16:  [3] (random) drand48:
  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.
  dest[3][2] = drand48();
data/cglm-0.7.9/test/src/test_common.c:19:20:  [3] (random) drand48:
  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.
  glm_rotate(dest, drand48(), (vec3){drand48(), drand48(), drand48()});
data/cglm-0.7.9/test/src/test_common.c:19:38:  [3] (random) drand48:
  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.
  glm_rotate(dest, drand48(), (vec3){drand48(), drand48(), drand48()});
data/cglm-0.7.9/test/src/test_common.c:19:49:  [3] (random) drand48:
  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.
  glm_rotate(dest, drand48(), (vec3){drand48(), drand48(), drand48()});
data/cglm-0.7.9/test/src/test_common.c:19:60:  [3] (random) drand48:
  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.
  glm_rotate(dest, drand48(), (vec3){drand48(), drand48(), drand48()});
data/cglm-0.7.9/test/src/test_common.c:30:23:  [3] (random) drand48:
  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.
  glm_rotate_make(m4, drand48(), (vec3){drand48(), drand48(), drand48()});
data/cglm-0.7.9/test/src/test_common.c:30:41:  [3] (random) drand48:
  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.
  glm_rotate_make(m4, drand48(), (vec3){drand48(), drand48(), drand48()});
data/cglm-0.7.9/test/src/test_common.c:30:52:  [3] (random) drand48:
  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.
  glm_rotate_make(m4, drand48(), (vec3){drand48(), drand48(), drand48()});
data/cglm-0.7.9/test/src/test_common.c:30:63:  [3] (random) drand48:
  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.
  glm_rotate_make(m4, drand48(), (vec3){drand48(), drand48(), drand48()});
data/cglm-0.7.9/test/src/test_common.c:36:16:  [3] (random) drand48:
  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.
  dest[0][0] = drand48();
data/cglm-0.7.9/test/src/test_common.c:37:16:  [3] (random) drand48:
  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.
  dest[0][1] = drand48();
data/cglm-0.7.9/test/src/test_common.c:38:16:  [3] (random) drand48:
  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.
  dest[1][0] = drand48();
data/cglm-0.7.9/test/src/test_common.c:39:16:  [3] (random) drand48:
  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.
  dest[1][1] = drand48();
data/cglm-0.7.9/test/src/test_common.c:44:13:  [3] (random) drand48:
  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.
  dest[0] = drand48();
data/cglm-0.7.9/test/src/test_common.c:45:13:  [3] (random) drand48:
  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.
  dest[1] = drand48();
data/cglm-0.7.9/test/src/test_common.c:46:13:  [3] (random) drand48:
  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.
  dest[2] = drand48();
data/cglm-0.7.9/test/src/test_common.c:58:13:  [3] (random) drand48:
  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.
  dest[0] = drand48();
data/cglm-0.7.9/test/src/test_common.c:59:13:  [3] (random) drand48:
  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.
  dest[1] = drand48();
data/cglm-0.7.9/test/src/test_common.c:60:13:  [3] (random) drand48:
  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.
  dest[2] = drand48();
data/cglm-0.7.9/test/src/test_common.c:61:13:  [3] (random) drand48:
  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.
  dest[3] = drand48();
data/cglm-0.7.9/test/src/test_common.c:73:10:  [3] (random) drand48:
  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.
  return drand48();
data/cglm-0.7.9/test/src/test_common.c:78:15:  [3] (random) drand48:
  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.
  glm_quat(q, drand48(), drand48(), drand48(), drand48());
data/cglm-0.7.9/test/src/test_common.c:78:26:  [3] (random) drand48:
  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.
  glm_quat(q, drand48(), drand48(), drand48(), drand48());
data/cglm-0.7.9/test/src/test_common.c:78:37:  [3] (random) drand48:
  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.
  glm_quat(q, drand48(), drand48(), drand48(), drand48());
data/cglm-0.7.9/test/src/test_common.c:78:48:  [3] (random) drand48:
  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.
  glm_quat(q, drand48(), drand48(), drand48(), drand48());
data/cglm-0.7.9/include/cglm/io.h:66: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 buff[16];
data/cglm-0.7.9/include/cglm/io.h:79:15:  [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.
        cwi = sprintf(buff, "% .*f", CGLM_PRINT_PRECISION, matrix[i][j]);
data/cglm-0.7.9/include/cglm/io.h:81:15:  [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.
        cwi = sprintf(buff, "% g", matrix[i][j]);
data/cglm-0.7.9/include/cglm/io.h:109: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 buff[16];
data/cglm-0.7.9/include/cglm/io.h:122:15:  [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.
        cwi = sprintf(buff, "% .*f", CGLM_PRINT_PRECISION, matrix[i][j]);
data/cglm-0.7.9/include/cglm/io.h:124:15:  [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.
        cwi = sprintf(buff, "% g", matrix[i][j]);
data/cglm-0.7.9/include/cglm/io.h:151: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 buff[16];
data/cglm-0.7.9/include/cglm/io.h:164:15:  [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.
        cwi = sprintf(buff, "% .*f", CGLM_PRINT_PRECISION, matrix[i][j]);
data/cglm-0.7.9/include/cglm/io.h:166:15:  [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.
        cwi = sprintf(buff, "% g", matrix[i][j]);
data/cglm-0.7.9/test/runner.c:36:22:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
    len   = (int32_t)strlen(entry->name);

ANALYSIS SUMMARY:

Hits = 62
Lines analyzed = 32448 in approximately 0.74 seconds (44026 lines/second)
Physical Source Lines of Code (SLOC) = 19307
Hits@level = [0]  41 [1]   1 [2]   9 [3]  37 [4]  15 [5]   0
Hits@level+ = [0+] 103 [1+]  62 [2+]  61 [3+]  52 [4+]  15 [5+]   0
Hits/KSLOC@level+ = [0+] 5.33485 [1+] 3.21127 [2+] 3.15948 [3+] 2.69332 [4+] 0.77692 [5+]   0
Dot directories skipped = 3 (--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.