mirror of
https://github.com/opnsense/src.git
synced 2026-02-13 15:57:05 -05:00
As a component of atan2(y, x), the case of x == 1.0 is farmed out to atan(y). The current implementation of this comparison is vulnerable to signed integer underflow (that is, undefined behavior), and it's performed in a somewhat more complicated way than it need be. Change it to not be quite so cute, rather directly comparing the high/low bits of x to the specific IEEE-754 bit pattern that encodes 1.0. Note that while there are three different e_atan* files in the relevant directory, only this one needs fixing. e_atan2f.c already compares against the full bit pattern encoding 1.0f, while e_atan2l.cuses bitwise-ands/ors/nots and so doesn't require a change. Closes #130 Submitted by: Jeff Walden (@jswalden github PR #130) Reviewed by: bde MFC After: 1 month |
||
|---|---|---|
| .. | ||
| aarch64 | ||
| amd64 | ||
| arm | ||
| bsdsrc | ||
| i387 | ||
| ld80 | ||
| ld128 | ||
| man | ||
| mips | ||
| powerpc | ||
| riscv | ||
| sparc64 | ||
| src | ||
| tests | ||
| x86 | ||
| Makefile | ||
| Makefile.depend | ||
| Symbol.map | ||