numpy 2.5.4
- Source
- https://github.com/numpy/numpy
- Tag scanned
v2.5.4- Compared with
v2.5.3(0 signals introduced since)- Files
- 1825 scanned, 417 skipped (binary, oversized, or unrecognised)
- Signals
- 0 critical · 19 warn · 119 info
- Scan time
- 79.5 s
- LLM review
- Reviewed by claude-haiku-5-5 (Anthropic): the 100 most severe of 119 warn and critical signals (100 with a verdict); 100 demoted to info. The rest are unreviewed.
- Disclude version
- 4.0.0
- Scanned (UTC)
- 2026-10-14 18:14
Signals
Ordered by severity, then signals introduced in this release. Hidden characters are shown as ⟨U+…⟩.
-
/* Subroutine */ int -
static integer i1, i2; static real t1, t2, t3, v2, v3, aa, ab, ba, bb, h11, h12, h21, h22, cs; static integer nh; static real sn; -
/* Local variables */ static integer i__, j, k, m, i2, j2, i4, j4, k1; static real h11, h12, h21, h22; static integer m22, ns, nu; -
/* Local variables */ static integer ie, il, mm; static doublereal eps, anrm, bnrm; static integer itau, nlvl, iascl, ibscl; -
/* Local variables */ static integer i__, j, k, ll, iq, lgn, msd2, smm1, spm1, spm2; static doublereal temp; static integer curr, iperm; -
/* Local variables */ static integer i__, k, n1, n2, iq, iw, iz, ptr, indx, curr, indxc, indxp; extern /* Subroutine */ int -
static doublereal s, t; static integer k2, n1, n2, jp, n1p1; static doublereal eps, tau, tol; static integer jlam, imax, jmax; -
/* Local variables */ static integer j, k, m, i2, j2, i4, j4, k1; static doublereal h11, h12, h21, h22; static integer m22, ns, nu; -
# get previous frame = . = = -
double p, binomial_t *binomial) -
} else -
-
-
-
= = 0 = -
+= 1 = - return 0.01 * -
-
return -
# translate README.rst to md for posting on GitHub -
=likely benign exec runs generated benchmark code into a namespace and extracts a run function.Reasoning
exec of a code string into a namespace inside an asv benchmark setup is a common pattern for generating benchmark functions; the code is local source, not attacker-supplied.
-
breaklikely benign Sphinx conf.py dynamically imports optional extension modules by name.Reasoning
Sphinx conf.py importing extension names from a configured list in a try block is standard documentation build logic; the critical severity is overstated for this context.
-
= passlikely benign numpy __init__ copies attributes from _core into module globals.Reasoning
Populating module globals from core attributes to re-export names is a normal namespace-building idiom in numpy's package init.
-
= passlikely benign Tempita template engine inspects caller frame to resolve template namespace.Reasoning
Tempita templating uses sys._getframe to find caller namespace for template rendering; this is a legitimate template engine feature, not anti-analysis, and the co-occurrence with exec/eval reflects the template engine's own design.
-
=likely benign Tempita evaluates template expressions in its namespace.Reasoning
eval within the Tempita template expression evaluator is the template language's core function, evaluating template expressions in a controlled namespace.
-
likely benign Tempita executes template code blocks in its namespace.
Reasoning
exec of template statements is the core of the Tempita template engine, a vendored build utility.
-
= = =likely benign Tempita CLI evaluates variable values passed as arguments.Reasoning
eval of a command-line variable value in the Tempita CLI is an expected template-tool behavior; it runs only with developer-supplied arguments during build.
-
""" new = getattr(__import__(place, globals(), {}, [obj]), obj) if isinstance(doc, str): if "${ARRAY_FUNCTION_LIKE}" in doc:likely benign Dynamically imports a module by name to wrap a function for docstring substitution.Reasoning
Dynamic import of a module and getattr to attach a docstring-decorated function is a known numpy idiom for array function-like docs; the place and obj values are internal constants.
-
info
warn→ info by reviewidentifier-confusable-collisionnumpy/_core/include/numpy/libdivide/libdivide.h:219:14static inline uint32_tdismissed Short variable names xl and yl in a standard mulhi routine flagged as confusable.Reasoning
The identifiers xl and yl are ordinary short names; the skeleton collision with x and y is an artifact of the confusable-skeleton heuristic on single-letter names, not homoglyph obfuscation.
-
info
warn→ info by reviewidentifier-confusable-collisionnumpy/_core/include/numpy/libdivide/libdivide.h:219:22static inline uint32_tdismissed Short variable name yl flagged as confusable with y.Reasoning
Same as the sibling finding: yl and y are normal identifiers whose skeleton collision is a heuristic false positive on short names.
-
=likely benign Exports scalar type names into the module namespace and __all__.Reasoning
Assigning type names into module globals and appending to __all__ is a standard way numpy exports its scalar types.
-
info
warn→ info by reviewidentifier-confusable-collisionnumpy/_core/src/common/simd/avx2/reorder.h:87:12__m256 ab0 = ; __m256 ab1 = ; return ; }dismissed SIMD temporaries ab0 and ab1 flagged as confusable.Reasoning
ab0 and ab1 are ordinary SIMD temporaries; the confusable skeleton match comes from trailing digits, a heuristic false positive.
-
info
warn→ info by reviewidentifier-confusable-collisionnumpy/_core/src/common/simd/avx512/reorder.h:109:13__m512i ab0 = ; __m512i ab1 = ; __m512i ab0 = ;dismissed SIMD temporaries ab0 and ab1 flagged as confusable.Reasoning
Same ab0/ab1 naming in an AVX-512 intrinsic routine; a benign heuristic collision on digit suffixes.
-
info
warn→ info by reviewidentifier-confusable-collisionnumpy/_core/src/common/simd/sse/reorder.h:85:58// deinterleave two vectors NPY_FINLINE npyv_u8x2likely benign Short SIMD parameter names ab0/ab1 collide visually under confusable skeleton matching.Reasoning
Token-pass confusable collision between identifiers ab0/ab1 style names in a SIMD header; this is a natural naming artifact of short variable names, not an attack. The skeleton collision is an unlikely-intent coincidence.
-
info
warn→ info by reviewidentifier-confusable-collisionnumpy/_core/src/multiarray/multiarraymodule.c:2519:15likely benign Short local identifiers in a NumPy C function trigger a confusable-skeleton warning.Reasoning
Identifiers a0 and out/ao-style short names in C code produce a confusable skeleton collision; typical of short local names in NumPy C sources, no malicious payload shown.
-
info
warn→ info by reviewidentifier-confusable-collisionnumpy/_core/src/npysort/timsort.hpp:98:15npy_intp sz; type vc, *pl, *pi, *pj, *pr; iflikely benign Timsort pointer variables pl/pi trigger a confusable-identifier warning.Reasoning
Pointer variables pl, pi, pj, pr are standard timsort naming; the 'p|' skeleton collision is a false positive from short identifiers.
-
info
warn→ info by reviewidentifier-confusable-collisionnumpy/_core/src/npysort/timsort_generic.cpp:133:11npy_intp sz; char *pl, *pi, *pj, *pr; iflikely benign Generic timsort pointer variables trigger a confusable-identifier warning.Reasoning
Same standard timsort pointer naming as the header variant; benign short identifiers with no obfuscation evidence.
-
const char* ss; iflikely benign sscanf with %n in a literal format string used to track parse offset in rational test code.Reasoning
The %n directive in sscanf is a format-string conversion that stores the consumed character count into &offset; this is a standard, safe way to track parse position in a test module. It is not a format-string write exploit since the format is a literal and the target is a local int.
-
ss++; iflikely benign Second sscanf %n usage in rational test parser with a literal format and local offset.Reasoning
Same literal sscanf pattern with %n storing into a local offset variable; a legitimate parsing idiom, flagged only by a naive pattern match.
-
>>> = >>> -
>>> = >>> -
>>> >>> -
>>> -
>>> -
likely benign Test asserts that eval of an array's repr reconstructs the array.
Reasoning
In a NumPy test file, eval of repr output round-trips arrays to verify printing; the input is self-generated test data, not untrusted input.
-
likely benign Test evaluates repr of a scalar-array element to verify round-trip printing.
Reasoning
Same repr round-trip test pattern in a test suite; eval operates on locally generated repr strings with a restricted namespace.
-
) =likely benign Dtype string round-trip test uses eval and pickle imports in a test module.Reasoning
The decoder-import flag is generic: this is a dtype repr round-trip test. Pickle import here is a test utility and eval operates on str(dt) from a local dtype, not an external payload.
-
) =likely benign Dtype string round-trip test evaluates str(dt) produced locally.Reasoning
Eval of str(dtype) in a unit test verifying dtype string round-trip; self-generated input with no external data path.
-
=likely benign Multiarray test evaluates array repr round-trip and uses pickle in the same file.Reasoning
Test evaluates repr of a local array with a restricted namespace to verify round-trip; pickle import is part of ordinary serialization tests.
-
=likely benign Multiarray test evaluates repr of a locally constructed array.Reasoning
Eval of repr(xx) in a test with a controlled namespace; no untrusted input reaches eval.
-
= blikely benign Test fixture containing a pickled numpy array (C-contiguous) used for serialization tests.Reasoning
The bytes literal is a pickle protocol-5 stream reconstructing a numpy ndarray via numpy._core.numeric._frombuffer with a buffer of sequential bytes. This is a serialized test fixture for numpy's contiguity and pickling tests, in a numpy test file. Its high escape density is expected for binary pickle data and it is not executed as a payload.
-
= blikely benign Test fixture containing a pickled F-contiguous numpy array for serialization tests.Reasoning
Same structure as the neighbouring fixture: a pickle stream reconstructing a Fortran-contiguous numpy array via _frombuffer. It is test data for numpy's pickling behaviour inside the numpy test suite.
-
= blikely benign Test fixture containing a pickled transposed numpy array.Reasoning
The literal is a pickle stream using numpy._core.multiarray._reconstruct to rebuild a transposed ndarray. It is a regression fixture for numpy array pickling in its own test module, with no execution path to a payload.
-
= blikely benign Test fixture containing a pickled non-contiguous numpy array.Reasoning
A pickle stream reconstructing a non-contiguous numpy ndarray via _reconstruct and dtype objects. This is numpy's own serialization test data, and the bytes are only loaded in tests.
-
=likely benign Legacy pickle fixture for an int8 numpy array used in compatibility tests.Reasoning
A concatenated bytes literal forming a legacy protocol-2 pickle of a numpy array (numpy.core._internal._reconstruct, dtype i1). It is a backward-compatibility test fixture for loading old numpy pickles, inside numpy's test suite.
-
=likely benign Legacy pickle fixture for a float32 numpy array used in compatibility tests.Reasoning
Legacy protocol-2 pickle of a float32 numpy array (dtype f4) built from concatenated bytes literals. This is compatibility test data for numpy's unpickling of older formats.
-
=likely benign Legacy pickle fixture for an object-dtype numpy array used in compatibility tests.Reasoning
Legacy protocol-2 pickle of an object-dtype (O8) numpy array, a standard compatibility fixture in numpy's test suite. The bytes are data, not code, and are only parsed by numpy tests.
-
=likely benign Legacy pickle fixture for a Fortran-ordered int8 numpy array.Reasoning
Legacy protocol-2 pickle of an int8 numpy array with a Fortran-order layout, used as test input for numpy's pickle compatibility checks. The high escape ratio is characteristic of binary pickle fixtures.
-
=likely benign Legacy pickle fixture for a Fortran-ordered float32 numpy array.Reasoning
Legacy protocol-2 pickle of a Fortran-ordered float32 numpy array, a numpy test fixture for loading older pickled arrays. It is benign binary test data.
-
=dismissed Test fixture containing a hand-written pickle byte string for numpy ndarray reconstruction.Reasoning
A bytes literal of pickle protocol-2 data used as a test fixture for unpickling numpy arrays. The binary shape is expected for a pickle compatibility test and nothing in the snippet runs it maliciously.
-
= = # Prints the type `numpy.record` as part of the dtype:likely benign Test helper that round-trips numpy record array reprs through eval.Reasoning
The file is a numpy test module. The eval calls rebuild array reprs in the np namespace to check round-tripping. The pickle import is part of the test suite's serialization checks, not a multi-stage payload.
-
= = # Prints the type `numpy.record` as part of the dtype:dismissed eval of a repr-built expression to verify numpy record repr round-trips.Reasoning
eval is applied to "np." plus repr of a locally created numpy array, with np as the only name in scope. This is a deliberate repr round-trip check in a test, not attacker-controlled input.
-
= = # Prints the type `numpy.record` as part of the dtype: =dismissed eval of a repr-built expression to verify numpy recarray repr round-trips.Reasoning
Same pattern as the sibling finding: eval over a string built from repr of test-local arrays with a restricted namespace. Legitimate test code.
-
# Prints the type `numpy.record` as part of the dtype: =dismissed eval of a repr-built expression for a recordview round-trip test.Reasoning
eval on repr(recordview) with np in the namespace, inside a repr round-trip assertion in a test. No external input reaches it.
-
= = = -
= =dismissed eval of a scalar's repr to compare the round-tripped value in a test.Reasoning
eval(repr(val)) recovers a scalar value from its repr for comparison in a scalar math test. The input is a test-generated float, so this is benign.
-
= = = =likely benign eval resolves a SIMD intrinsic name from test parameters to a callable.Reasoning
intrin is an intrinsic name taken from the test's own parametrized list. eval resolves it to a numpy SIMD function for comparison. This is a common pattern in numpy's SIMD tests.
-
= = = =likely benign eval of a test-defined intrinsic name prefix to select a SIMD function.Reasoning
eval(intrin[:3]) takes a prefix of a test-defined intrinsic name to get a function. The input is internal test data, not external.
-
= = = =likely benign eval resolves a test-supplied SIMD intrinsic name to a function.Reasoning
Same SIMD test pattern: eval resolves a test-supplied intrinsic name to a callable used for expected-value computation.
-
return , = = =likely benign eval resolves test-defined SIMD load intrinsic names to functions.Reasoning
eval unpacks a tuple of load intrinsics named in the test's own data. It is consistent with the numpy SIMD test harness.
-
return = = =likely benign eval resolves a test-defined SIMD store intrinsic name to a function.Reasoning
eval retrieves a store intrinsic named by the test's parameter list. Internal test data only.
-
return =likely benign eval resolves a test-defined strided-load intrinsic name to a function.Reasoning
eval of a test-defined loadn intrinsic name in a SIMD strided-load test. No external input is involved.
-
return , = = +=likely benign eval of an intrinsic name string inside a SIMD load test.Reasoning
The eval'd string is an intrinsic name from the test's own parametrization of NumPy SIMD intrinsics, inside a unit test. No external input reaches it, so this is a test-harness pattern rather than dropper behavior.
-
return = = =likely benign eval of an intrinsic name to obtain a store function in a test.Reasoning
Same pattern: eval resolves a locally defined intrinsic name in a test method. The string comes from the test's own tables, not from untrusted input.
-
return = = =likely benign eval of an intrinsic name for a partial-store test.Reasoning
Same test-harness eval of a fixed intrinsic name string; no untrusted source is visible.
-
return = = =likely benign eval of an intrinsic name in a lookup-table test.Reasoning
eval on a test-supplied intrinsic name, followed by getattr on the module. Both operate on fixed test data within a unit test.
-
= = = =likely benign eval of a function name string to compute expected SIMD output.Reasoning
eval resolves a reference function name used only to compute the expected result in a test. This is standard test parametrization.
-
=likely benign Registers dynamically generated SIMD test classes into module globals.Reasoning
Writing generated test classes into globals() is a common way for pytest to register dynamically built test cases. The key is the class's own __name__, so there is no hidden payload.
-
, , ]) -
, , ]) -
-
, , , , -
, , , , -
, , , ]) -
, , ]) -
= 512 + 7 , , = , = ,likely benign eval of a test expression string that builds integer arrays for division tests.Reasoning
eval of ex_val in a test that unpacks arrays and divisors from parametrized expression strings. The strings are test constants, not attacker-controlled input.
-
= = = =likely benign eval of a test expression string to build an array for division checks.Reasoning
Same test-parametrization eval producing an array for integer division checks; the input is local test data.
-
), =) =likely benign eval of a dtype string taken from accuracy test data.Reasoning
eval resolves a dtype name read from bundled accuracy-test data files. This is a test-data convention, although eval on file contents would be risky in untrusted contexts. The data is shipped with the project.
-
), =) = =likely benign eval of a dtype string from accuracy test data.Reasoning
Same eval of a dtype name from bundled test data, used to build an input array for accuracy checks.
-
# scipy.special.expit for instance. = returnlikely benign __import__ of a module name in a numpy.core backward-compatibility shim.Reasoning
This is a compatibility shim that imports numpy._core submodules by name when legacy numpy.core attributes are accessed. The module names come from a fixed internal mapping, so the critical severity reflects the non-literal __import__ rule rather than real risk. The surrounding code is not shown, which limits confidence somewhat.
-
=likely benign Re-exports ufunc attributes into module globals for compatibility.Reasoning
This re-exports ufunc attributes from the private module into globals() for backward-compatible names. It is a standard NumPy forwarding pattern with no external input.
-
= # Pybind11 (in versions <= 2.11.1) imports _ARRAY_API from the multiarraylikely benign Copies a fixed set of names from multiarray into module globals for compatibility.Reasoning
A fixed list of names is copied from the multiarray module into globals() for backward compatibility. Nothing external is involved.
-
= , =likely benign eval of the contents of a user-provided f2cmap file to build a type-mapping dictionary.Reasoning
The eval reads a user-supplied f2cmap configuration file that f2py is explicitly designed to load. Evaluating that dict literal is a documented tool feature, not a payload. The risk is that the tool trusts its input, not that it hides anything. Empty globals and locals limit the scope somewhat.
-
= passlikely benign eval of a Fortran array-size expression string during C type mapping.Reasoning
The eval evaluates a size expression taken from Fortran declaration metadata inside a try/except. This is parsing of Fortran dimension expressions, a routine code-generation step. Nothing suggests obfuscation.
-
= , = ,likely benign eval of a complex-number initializer string to extract its real and imaginary parts.Reasoning
The eval converts a Fortran complex initializer value into real and imaginary parts, and failures are caught. This is ordinary numeric parsing for generated wrappers.
-
=likely benign Fortran parameter initializer evaluation in a file that also imports codecs for source decoding.Reasoning
The file-level heuristic flags the combination of a codecs import and eval. In crackfortran.py, codecs is used for reading Fortran source encodings, and the eval is a Fortran parameter-initialization expression evaluator. The multi-stage payload shape does not match the code here.
-
=likely benign eval of a Fortran PARAMETER initialization expression against a parameter dictionary.Reasoning
This is the same eval of a Fortran initialization expression in a try block, with specific exceptions caught. It is the standard parameter-evaluation path of the Fortran parser.
-
""" Like `eval` but returns only integers and floats """ = returnlikely benign Helper that evaluates Fortran constant expressions and returns only int or float results.Reasoning
The function is documented as a restricted eval that returns only int or float results. It evaluates Fortran constant expressions, and the type check limits the output. The pattern is intentional and benign.
-
# TODO: use symbolic from PR #19805 = =likely benign eval of a Fortran parameter value expression against the local params table.Reasoning
The eval evaluates a parameter value expression against a params dictionary, and the caught exceptions fall back to the raw value. This is Fortran parameter resolution with no sign of malice.
-
= passlikely benign eval of a Fortran length expression, with the result stringified and failures ignored.Reasoning
The eval evaluates a length or kind expression with a params namespace and suppresses exceptions. This is routine handling of Fortran declarations.
-
= passlikely benign eval of a second Fortran length or kind expression with the same params namespace.Reasoning
This repeats the same pattern as the previous eval, evaluating a Fortran expression against params with exceptions suppressed. It is standard parser behavior.
-
=likely benign eval of a Fortran KIND selector expression against the parameter table.Reasoning
The eval resolves a KIND selector expression for a Fortran declaration against the params dictionary. It is a legitimate step in parsing Fortran type specifications.
-
= =likely benign eval of a Fortran parameter value with global and local parameter namespaces.Reasoning
The eval resolves a parameter value using the global and local parameter dictionaries and falls back to the raw string on error. This is consistent with Fortran PARAMETER handling.
-
=likely benign eval of a parameter item against global and local namespaces, logging errors on failure.Reasoning
The eval resolves parameter items with the same namespaces, and exceptions are logged rather than hidden. This is a normal part of the Fortran parser.
-
= = flikely benign f2py evaluates a parameter value expression to format a complex number.Reasoning
eval on a Fortran parameter value string to convert complex literals; it is a known legacy pattern in f2py, operating on parsed declaration values rather than attacker-controlled input in a meaningful sense, though eval is still risky.
-
= . = returnlikely benign numpy's matrix string shorthand reads the caller's frame globals and locals.Reasoning
sys._getframe used by mgrid/bmat-style string matrix construction to access caller namespace; a documented, legitimate numpy idiom.
-
= = =likely benign Helper imports a module by name to build a namespace dictionary for lookup.Reasoning
__import__ on a module name parameter defaulting to 'numpy' inside numpy's own utility for building a name dictionary; the non-literal is a developer-supplied module name, not an obfuscated payload.
-
info
warn→ info by reviewidentifier-confusable-collisionnumpy/linalg/lapack_lite/f2c_c_lapack.c:2697:24/* Local variables */ static integer ie, il, mm; static real eps, anrm, bnrm; static integer itau, nlvl, iascl, ibscl;dismissed Local variable names in auto-translated LAPACK code look confusable under the skeleton heuristic.Reasoning
Identifier collisions like 'ie', 'il', 'i__' are artifacts of f2c-generated LAPACK code where distinct names differ only by l/1/I or similar; the skeleton collision is a false positive from mechanical translation of Fortran names.
-
info
warn→ info by reviewidentifier-confusable-collisionnumpy/linalg/lapack_lite/f2c_c_lapack.c:9378:31/* Local variables */ static integer i__, j, k, ll, iq, lgn, msd2, smm1, spm1, spm2; static real temp; static integer curr, iperm;dismissed Generated LAPACK locals share a visual skeleton under confusable-character folding.Reasoning
Short generated Fortran-style local names collide visually; this is normal f2c output with no hostile intent.
-
info
warn→ info by reviewidentifier-confusable-collisionnumpy/linalg/lapack_lite/f2c_c_lapack.c:9727:28/* Local variables */ static integer i__, k, n1, n2, iq, iw, iz, ptr, indx, curr, indxc, indxp; extern /* Subroutine */ intdismissed Short generated local identifiers flagged as confusable collisions.Reasoning
Typical f2c-generated local variable declarations; the skeleton match is a heuristic false positive on short identifiers.
-
info
warn→ info by reviewidentifier-confusable-collisionnumpy/linalg/lapack_lite/f2c_c_lapack.c:10032:36static real s, t; static integer k2, n1, n2, jp, n1p1; static real eps, tau, tol; static integer jlam, imax, jmax;dismissed Short LAPACK local variable names collide under skeleton folding.Reasoning
Generated numerical code with short variable names; no homoglyph or deceptive identifiers evident.
-
info
warn→ info by reviewidentifier-confusable-collisionnumpy/linalg/lapack_lite/f2c_c_lapack.c:16718:45/* Local variables */ static integer j, k, m, i2, j2, i4, j4, k1; static real h11, h12, h21, h22; static integer m22, ns, nu;dismissed Local variable names in translated LAPACK code trigger a confusable collision.Reasoning
Standard f2c-translated local variables; collision is an artifact of the heuristic on short names.
-
info
warn→ info by reviewidentifier-confusable-collisionnumpy/linalg/lapack_lite/f2c_d_lapack.c:559:20static doublereal r__, cs; static integer ll; static doublereal sn, mu; static integer nm1, nm12, nm13, lll;dismissed Short generated local names in LAPACK code match under confusable folding.Reasoning
Generated double-precision LAPACK locals; the skeleton collision is a benign artifact of short identifiers.
-
info
warn→ info by reviewidentifier-confusable-collisionnumpy/linalg/lapack_lite/f2c_d_lapack.c:2647:63/* Subroutine */ intdismissed Function parameter names in generated LAPACK signature collide under skeleton folding.Reasoning
Parameter names in f2c-generated dgeev signature; no evidence of deception, only heuristic collision.
-
info
warn→ info by reviewidentifier-confusable-collisionnumpy/linalg/lapack_lite/f2c_d_lapack.c:4061:24/* Local variables */ static integer ie, il, mm; static doublereal eps, anrm, bnrm; static integer itau, nlvl, iascl, ibscl;dismissed Generated LAPACK local names trigger confusable identifier heuristic.Reasoning
Same generated LAPACK local variable pattern; benign heuristic false positive.
-
info
warn→ info by reviewidentifier-confusable-collisionnumpy/linalg/lapack_lite/f2c_d_lapack.c:9134:28/* Local variables */ static integer i__, k, n1, n2, is, iw, iz, iq2, zpp1, indx, indxc; extern /* Subroutine */ int ;likely benign f2c-translated LAPACK local variable declarations with short names.Reasoning
Token pass collision of short Fortran-derived identifiers (n1, n2 vs n1 variants, skeleton 'n|') in f2c-generated LAPACK code; standard machine-translated naming, no malicious construct.
-
info
warn→ info by reviewidentifier-confusable-collisionnumpy/linalg/lapack_lite/f2c_d_lapack.c:9366:54static doublereal s, t; static integer k2, n2, ct, nj, pj, js, iq1, iq2, n1p1; static doublereal eps, tau, tol; static integer psm, imax, jmax;dismissed Static local variables in an f2c-translated LAPACK routine whose names collapse to the same visual skeleton.Reasoning
The flagged names are ordinary LAPACK local variables (n1p1, npsm-style names) in an f2c-generated numerical routine. The token-pass confusable skeleton collision is an artifact of short lowercase identifiers and has no obfuscation or malicious signal.
-
info
warn→ info by reviewidentifier-confusable-collisionnumpy/linalg/lapack_lite/f2c_d_lapack.c:12877:48/* Subroutine */ intdismissed Parameter cs1 in the f2c-generated dlaev2_ eigenvalue routine, colliding with another identifier only under confusable-character normalization.Reasoning
dlaev2_ is a standard LAPACK symmetric 2x2 eigensolver with parameters cs1 and sn1 (cosine and sine). Their skeleton collision is a naming coincidence in generated numerical code, not a sign of tampering.
-
info
warn→ info by reviewidentifier-confusable-collisionnumpy/linalg/lapack_lite/f2c_d_lapack.c:12877:65/* Subroutine */ intdismissed Parameter sn1 in the f2c-generated dlaev2_ routine, flagged only for a skeleton collision.Reasoning
sn1 is the standard sine output parameter of LAPACK dlaev2_. The collision comes from the normalization of short names, and the code is ordinary numerical computation.
-
info
warn→ info by reviewidentifier-confusable-collisionnumpy/linalg/lapack_lite/f2c_d_lapack.c:13496:23static integer i1, i2; static doublereal t1, t2, t3, v2, v3, aa, ab, ba, bb, h11, h12, h21, h22, cs; static integer nh;dismissed Scratch variable t1 in an f2c-generated LAPACK eigenvalue routine, flagged for a skeleton collision.Reasoning
t1, t2, t3 are conventional scratch variables in the Hessenberg QR iteration of a LAPACK eigensolver. The collision is a normalization artifact of short identifiers.
-
info
warn→ info by reviewidentifier-confusable-collisionnumpy/linalg/lapack_lite/f2c_d_lapack.c:20362:50/* Local variables */ static integer i__, j, k, m, i2, j2, i4, j4, k1; static doublereal h11, h12, h21, h22; static integer m22, ns, nu;dismissed Index variable k in an f2c-generated LAPACK routine, flagged for a skeleton collision.Reasoning
k, i__, j, m and similar are standard loop and index variables in LAPACK. Their skeleton collision is a benign artifact of the confusable-character heuristic.
-
info
warn→ info by reviewidentifier-confusable-collisionnumpy/linalg/lapack_lite/f2c_s_lapack.c:554:20static real r__, cs; static integer ll; static real sn, mu; static integer nm1, nm12, nm13, lll;dismissed Local variable in an f2c-generated single-precision LAPACK routine, flagged because its skeleton is empty.Reasoning
r__, cs, sn, mu and ll are conventional names in single-precision LAPACK rotation and iteration code. The empty skeleton is a normalization artifact of very short identifiers.
-
info
warn→ info by reviewidentifier-confusable-collisionnumpy/linalg/lapack_lite/f2c_s_lapack.c:563:23static integer isub, iter; static real unfl, sinl, cosr, smin, smax, sinr; extern /* Subroutine */ int ,dismissed Trigonometric scratch variable sinl in an f2c-generated LAPACK routine, flagged for a skeleton collision.Reasoning
sinl, sinr and cosr are standard LAPACK scratch variables for trigonometric rotation values in the SVD routines. The skeleton collision is a benign naming artifact.
-
info
warn→ info by reviewidentifier-confusable-collisionnumpy/linalg/lapack_lite/f2c_s_lapack.c:2637:42/* Subroutine */ intdismissed Eigenvector argument vr of the f2c-generated sgeev_ routine, flagged for a skeleton collision.Reasoning
vl and vr are the standard left and right eigenvector arguments of LAPACK sgeev_. The collision is a normalization artifact in generated numerical code.
-
info
warn→ info by reviewidentifier-confusable-collisionnumpy/linalg/lapack_lite/f2c_s_lapack.c:4037:24/* Local variables */ static integer ie, il, mm; static real eps, anrm, bnrm; static integer itau, nlvl, iascl, ibscl;dismissed Local index variable ie in an f2c-generated LAPACK routine, flagged for a skeleton collision.Reasoning
ie, il, mm and itau are ordinary LAPACK workspace and index variables. The skeleton collision is a benign artifact of short names.
-
info
warn→ info by reviewidentifier-confusable-collisionnumpy/linalg/lapack_lite/f2c_s_lapack.c:9106:28/* Local variables */ static integer i__, k, n1, n2, is, iw, iz, iq2, cpp1, indx, indxc, indxp; extern /* Subroutine */ int ,dismissed Local size variable n1 in an f2c-generated LAPACK routine, flagged for a skeleton collision.Reasoning
i__, k, n1, n2 and similar are conventional index and size variables in LAPACK divide-and-conquer code. The collision is a normalization artifact, not obfuscation.
-
info
warn→ info by reviewidentifier-confusable-collisionnumpy/linalg/lapack_lite/f2c_s_lapack.c:9334:54static real s, t; static integer k2, n2, ct, nj, pj, js, iq1, iq2, n1p1; static real eps, tau, tol; static integer psm, imax, jmax, ctot;dismissed Static local variable declarations in an f2c-translated LAPACK routine.Reasoning
Identifier skeleton collision in machine-translated f2c LAPACK code; names like n1p1, psm, ctot are legitimate variable names where 1/l confusability is a naive artifact of the normalization, not obfuscation.
-
info
warn→ info by reviewidentifier-confusable-collisionnumpy/linalg/lapack_lite/f2c_s_lapack.c:12835:13/* Subroutine */ intdismissed Parameter list of the slaev2_ eigen-decomposition routine in f2c-generated LAPACK.Reasoning
Parameter names cs1/sn1 in slaev2_ collapse to a skeleton only because of digit-letter normalization; this is standard LAPACK naming in generated numerical code.
-
= = =likely benign Caller frame lookup to derive a module name in numpy testing helpers.Reasoning
sys._getframe(1) is used in numpy's testing utilities to find the caller's __file__ for naming; this is ordinary introspection. The anti-analysis label is a heuristic triggered by the file mentioning sys.exit/exec elsewhere, which is normal for a test library.
-
""" frame = sys._getframe(1) locs, globs = frame.f_locals, frame.f_globalslikely benign Reads the caller's frame locals and globals in a numpy testing helper.Reasoning
Frame introspection to read caller locals and globals for assert-style evaluation is a known pattern in numpy testing utilities; no exfiltration or evasion is visible.
-
returnlikely benign Decorator that temporarily clears the trace function while running a wrapped callable.Reasoning
sys.settrace(None) temporarily disables tracing (e.g., coverage or debugger) around a decorated test function and restores it in finally; this is a legitimate test utility pattern for suppressing trace overhead.
-
returnlikely benign Restores the previously saved trace function after the wrapped call.Reasoning
Restoring original_trace in a finally block pairs with the earlier settrace(None), a standard save/restore idiom with no malicious indicators.
-
py_ver= site_packages=; dll_list= -
| -
=likely benign Imports a module by computed name in a numpy docs reference-checking tool.Reasoning
A developer documentation-check tool imports a module by name taken from its own iteration over the package, then reads sys.modules. Dynamic import of a variable name is expected here and no network or payload behavior is visible.
Reproduce This Scan
Run disclude locally to verify. Add --format sarif for SARIF output. Add --llm (with an API key in the environment) to include the LLM review.
&&