CWE-479: Signal Handler Use of a Non-reentrant Function
The product defines a signal handler that calls a non-reentrant function.
Browse cwe for c++ with official CWE context and Glexia analysis.
Search And Filters
Showing 47 of 97 CWE records · Page 2 of 2.
The product defines a signal handler that calls a non-reentrant function.
The product accidentally uses the wrong operator, which changes the logic in security-relevant ways.
The code uses an operator for assignment when the intention was to perform a comparison.
The code uses an operator for comparison when the intention was to perform an assignment.
The code does not explicitly delimit a block that is intended to contain 2 or more statements, creating a logic error.
The product omits a break statement within a switch or similar construct, causing code associated with multiple conditions to execute. This can cause problems when the programmer only intended to execute code associated with one condition.
The product has a critical public variable that is not final, which allows the variable to be modified to contain unexpected values.
The product has a method that is declared public, but returns a reference to a private data structure, which could then be modified in unexpected ways.
Assigning public data to a private array is equivalent to giving public access to the array.
The code contains a class with sensitive data, but the class is cloneable. The data can then be accessed by cloning the class.
An object contains a public static field that is not marked final, which might allow it to be modified in unexpected ways.
The product uses the singleton pattern when creating a resource within a multithreaded environment.
The product uses the getlogin() function in a multithreaded context, potentially causing it to return incorrect values.
A function returns the address of a stack variable, which will cause unintended program behavior, typically in the form of a crash.
The product sets a pointer to a specific address other than NULL or 0.
Casting a non-structure type to a structure type and accessing a field can lead to memory access errors or data corruption.
The product invokes a potentially dangerous function that could introduce a vulnerability if it is used incorrectly, but the function can also be used safely.
The product performs a calculation to determine how much memory to allocate, but an integer overflow can occur that causes less memory to be allocated than expected, leading to a buffer overflow.
The product does not check for an error after calling a function that can return with a NULL pointer if the function fails, which leads to a resultant NULL pointer dereference.
The product does not correctly convert an object, resource, or structure from one type to a different type.
The developer builds a security-critical protection mechanism into the software, but the compiler optimizes the program such that the mechanism is removed or modified.
The product attempts to return a memory resource to the system, but it calls a release function that is not compatible with the function that was originally used to allocate that resource.
The product attempts to return a memory resource to the system, but it calls the wrong release function or calls the appropriate release function incorrectly.
The product declares a critical variable, field, or member to be public when intended security policy requires it to be private.
The product defines a public method that reads or modifies a private variable.
The product defines an IOCTL that uses METHOD_NEITHER for I/O, but it does not validate or incorrectly validates the addresses that are provided.
The product implements an IOCTL with functionality that should be restricted, but it does not properly enforce access control for the IOCTL.
The product uses an expression in which operator precedence causes incorrect logic to be used.
The product invokes a function for normalizing paths or file names, but it provides an output buffer that is smaller than the maximum possible size, such as PATH_MAX.
The product reads or writes to a buffer using an index or pointer that references a memory location prior to the beginning of the buffer.
The product writes data past the end, or before the beginning, of the intended buffer.
The product reads or writes to a buffer using an index or pointer that references a memory location after the end of the buffer.
The product allocates memory based on an untrusted, large size value, but it does not ensure that the size is within expected limits, allowing arbitrary amounts of memory to be allocated.
The product uses a sequential operation to read or write a buffer, but it uses an incorrect length value that causes it to access memory that is outside of the bounds of the buffer.
The product uses the size of a source buffer when reading from or writing to a destination buffer, which may cause it to access memory that is outside of the bounds of the buffer.
The product obtains a value from an untrusted source, converts this value to a pointer, and dereferences the resulting pointer.
The product performs pointer arithmetic on a valid pointer, but it uses an offset that can point outside of the intended range of valid memory locations for the resulting pointer.
The product accesses or uses a pointer that has not been initialized.
The product dereferences a pointer that contains a location for memory that was previously valid, but is no longer valid.
The product checks a value to ensure that it is less than or equal to a maximum, but it does not also verify that the value is greater than or equal to the minimum.
The product allocates or initializes a resource such as a pointer, object, or variable using one type, but it later accesses that resource using a type that is incompatible with the original type.
The product uses or accesses a file descriptor after it has been closed.
The product uses a reference count to manage a resource, but it does not update or incorrectly updates the reference count.
The product manages a group of objects or resources and performs a separate memory allocation for each object, but it does not properly limit the total amount of memory that is consumed by all of the combined objects.
An integer value is specified to be shifted by a negative amount or an amount greater than or equal to the number of bits contained in the value causing an unexpected or indeterminate result.
The product attempts to close or release a resource or handle more than once, without any successful open between the close operations.
The product has a hardware interface that silently discards operations in situations for which feedback would be security-relevant, such as the timely detection of failures or attacks.