1
0
mirror of https://github.com/f4exb/sdrangel.git synced 2026-08-11 14:03:56 -04:00
Commit Graph

11255 Commits

Author SHA1 Message Date
Robin Getz 5df5469cc2 leansdr : Fix undefined shift behavior in GF(2^N) arithmetic
The gf2n implementation used a left shift on a potentially negative
value when masking field elements:

    (~(Te)0) << N

This can result in undefined behavior for signed integer types and was
reported by static analysis (cppcheck).

Require the field element type to be unsigned and replace the mask
generation with an explicit N-bit mask constructed from the element type.
Also make the overflow check use the element type to avoid implicit
signed integer operations.

Add comments documenting the packed polynomial representation and the
GF(2^N) reduction steps to clarify the intent of the bit operations.

Fixes static analysis warning about shifting negative values.

Signed-off-by: Robin Getz <rgetz503@gmail.com>
2026-08-01 14:49:19 -04:00
Edouard Griffiths c9c95398f3 Merge pull request #2861 from rgetz/rgetz-fix-funcArgOrderDifferent
Fix cppcheck-reported function argument order mismatches
2026-08-01 16:02:24 +02:00
Edouard Griffiths 41c1805cda Merge pull request #2860 from rgetz/rgetz-fix-invalidFunctionArg
gui: Explicitly call QSlider::setRange in LogSlider constructor
2026-08-01 14:11:21 +02:00
Edouard Griffiths e7d6fb1000 Merge pull request #2859 from srcejon/fixes
ADS-B Demod: Support OpenSky authentication and decoder fixes
2026-08-01 13:09:57 +02:00
Robin Getz 09980d9782 APRSGUI: Fix displayTableSettings argument order
cppcheck reported that the displayTableSettings() declaration argument
order differed from the function definition. The header declared the
arguments as (columnIndexes, columnSizes), while the implementation and
all call sites use (columnSizes, columnIndexes).

Update the declaration to match the implementation and remove ambiguity
between the table column width and ordering arrays.

Signed-off-by: Robin Getz <rgetz503@gmail.com>
2026-07-31 21:02:23 -04:00
Robin Getz e3cf04b227 Fix RadioAstronomyGUI addToPowerFilter argument order
cppcheck reported that the addToPowerFilter() declaration argument
order differed from the function definition. The header declared the
arguments as (y, x), while the implementation and all call sites use
(x, y).

Update the declaration to match the implementation and callers to avoid
confusion and potential misuse of the function arguments.

Signed-off-by: Robin Getz <rgetz503@gmail.com>
2026-07-31 20:59:42 -04:00
Robin Getz 6fc50d2546 gui: Avoid log(0) in FFTNRDialog::setAlpha
Cppcheck reported that setAlpha() could call log() with an argument of
zero when alpha is clamped to 0.0f, resulting in an invalid-domain
mathematical operation.

Initialize tau to 0.0f and only compute the logarithm when alpha is
strictly positive. This preserves the existing behavior while avoiding
the invalid log(0) call.

Signed-off-by: Robin Getz <rgetz503@gmail.com>
2026-07-31 20:51:36 -04:00
Robin Getz 1253697801 gui: Explicitly call QSlider::setRange in LogSlider constructor
cppcheck identified that LogSlider::LogSlider() calls the derived
setRange(double, double) overload instead of QSlider::setRange(int, int)
due to C++ name hiding.

The constructor's call to:
    setRange(0, 1000);

was therefore invoking the logarithmic range implementation with
min == 0.0, resulting in a call to log10(0). While most callers
immediately replace the initial state by calling LogSlider::setRange()
with a valid positive range, the constructor still performs an invalid
mathematical operation during initialization.

Explicitly qualify the call as QSlider::setRange(0, 1000) to initialize
the underlying slider without invoking the logarithmic overload. This
eliminates the invalid-domain call, avoids undefined behavior from
propagating exceptional floating-point values into the slider state, and
makes the constructor's intent explicit.

This change has no functional impact on normal operation, but removes a
latent initialization bug and prevents future regressions caused by
overload hiding.

Signed-off-by: Robin Getz <rgetz503@gmail.com>
2026-07-31 20:37:23 -04:00
Jon Beniston 6f732293ec Fix formatting 2026-07-31 01:36:56 +01:00
Jon Beniston 3e986af4bc Fix a few decoding errors and small memory leaks. 2026-07-31 00:55:40 +01:00
Jon Beniston 84e7304d05 Fix encoding of + 2026-07-30 22:59:14 +01:00
Jon Beniston 9dfd11b2f5 Use latest settings when forced. 2026-07-30 22:56:44 +01:00
Jon Beniston 26f18e7402 Support OpenSky OAuth authentication. 2026-07-30 18:59:01 +01:00
Jon Beniston e27d41da1a Use stored mode-S identity. 2026-07-30 18:36:45 +01:00
Jon Beniston 703a1b6a29 Fix MSB of beast timestamp. 2026-07-30 18:30:32 +01:00
Jon Beniston 6287e4ac18 Add support for Mode-S short frames to Beast output 2026-07-30 18:29:54 +01:00
Jon Beniston 0e070d9881 Use latest settings when calculating interpolation filter 2026-07-30 18:29:18 +01:00
Jon Beniston a92c944c2c Fix opensky groundspeed and vertical rate. 2026-07-30 18:17:58 +01:00
Jon Beniston ea7571b31f m_exportServerPort is an int not a bool 2026-07-30 18:10:46 +01:00
Edouard Griffiths d91046b2f0 Merge pull request #2858 from rgetz/rgetz-fix-syntax-err
appbench, appsrv: Fix malformed QCoreApplication::applicationVersion()
2026-07-28 23:00:45 +02:00
Edouard Griffiths db89bd9b64 Merge pull request #2857 from rgetz/rgetz-cleanup-printf-format-specifiers
cleanup printf format specifiers
2026-07-28 13:11:21 +02:00
Robin Getz eaac5d032a appbench, appsrv: Fix malformed QCoreApplication::applicationVersion() call
Remove an inadvertent '>' character from the
QCoreApplication::applicationVersion() call in the startup version
logging for both appbench and appsrv.

This typo was identified by cppcheck during static analysis. Correcting
the expression restores valid C++ syntax, allowing the applications to
compile correctly and report their version information in the startup
log.

Signed-off-by: Robin Getz <rgetz503@gmail.com>
2026-07-27 20:30:34 -04:00
Edouard Griffiths 8064d990b1 Merge pull request #2856 from rgetz/rgetz-remove-warning-stringop-overflow
ft8: Fix CRC message length type causing memcpy overflow warning
2026-07-27 22:56:26 +02:00
Edouard Griffiths 82ce7487fb Merge pull request #2855 from rgetz/rgetz-fix-same-expression-on-both-sides
chirpchat: Fix FT8 message type 0.4 reply detection
2026-07-27 18:39:28 +02:00
Edouard Griffiths af3941dd23 Merge pull request #2854 from rgetz/rgetz-fix-win-com-port
serialutil: Remove dead code in Windows COM port enumeration
2026-07-27 13:34:09 +02:00
Edouard Griffiths a7969d1c8a Merge pull request #2852 from rgetz/rgetz-reduce-vlas-dvbs2
continue to reduce (eliminate) VLA usage from leansdr
2026-07-27 12:42:33 +02:00
Edouard Griffiths 6efccde2e3 Merge pull request #2851 from rgetz/rgetz-fix-incorrect-iterator
ADSB Demod: Fix incorrect iterator range when restoring column sizes
2026-07-27 11:56:44 +02:00
Edouard Griffiths 2dfcf88259 Merge pull request #2850 from rgetz/rgetz-fix-missing-copy-glscopesettings
GLScope: Fix missing freerun setting copy in assignment operator
2026-07-27 08:42:35 +02:00
Edouard Griffiths d23b91a6eb Merge pull request #2847 from srcejon/fix_2839
Fix Astronomy::azAltToXY85 when azimuth or elevation is 0.
2026-07-27 08:41:53 +02:00
Robin Getz 655841008e leansdr: Fix unsigned printf format specifiers
Replace signed %ld format specifiers with unsigned %lu conversions when
printing values stored as unsigned long.

The previous format strings passed unsigned values to signed printf
conversions, which could result in undefined behavior due to variadic
argument type mismatches. These issues were identified by cppcheck
invalidPrintfArgType_sint warnings.

Use format specifiers matching the actual argument types to ensure
correct and portable printf usage.

Signed-off-by: Robin Getz <rgetz503@gmail.com>
2026-07-26 18:43:36 -04:00
Robin Getz fff440527a plutosdr: Fix unsigned printf format warnings
Replace signed %d format specifiers with unsigned %u when formatting
sample rates and channel numbers.

The previous format strings passed unsigned int values to %d conversions,
which triggered cppcheck invalidPrintfArgType_sint warnings and could
result in undefined behavior due to variadic argument type mismatches.

Signed-off-by: Robin Getz <rgetz503@gmail.com>
2026-07-26 18:38:32 -04:00
Robin Getz d44a953cfa ft8: Fix CRC message length type causing memcpy overflow warning
Change the ft8_crc message length parameter from signed int to uint32_t
since it represents a non-negative FT8 message bit count.

GCC reported a potential buffer overflow in the memcpy() call:
    warning: ‘__builtin_memcpy’ specified bound between
    18446744073709551560 and 18446744073709551564 exceeds maximum object size
    [-Wstringop-overflow=]

The warning was caused by the signed message length allowing negative
values to be converted into a very large unsigned size when calculating
the memcpy() byte count.

Using an unsigned fixed-width type better represents the valid range of
the FT8 message length and prevents invalid negative lengths from being
interpreted as extremely large memory operations.

Signed-off-by: Robin Getz <rgetz503@gmail.com>
2026-07-26 18:22:04 -04:00
Robin Getz b6c9ed2057 chirpchat: Fix FT8 message type 0.4 reply detection
Fix a copy/paste error in decodeSymbols() where FT8 message type
0.3 was checked twice, preventing type 0.4 messages from being
recognized as replies.

FT8::Packing supports both 0.3 and 0.4 message types using the same
reply bit location.

Detected by cppcheck as a redundant condition.

Signed-off-by: Robin Getz <rgetz503@gmail.com>
2026-07-26 16:46:11 -04:00
Robin Getz 52f5055ef7 serialutil: Remove dead code in Windows COM port enumeration
Remove an invalid out-of-bounds array access that attempted to handle
ERROR_INSUFFICIENT_BUFFER. The statement did not resize the fixed-size
buffer and had no effect other than invoking undefined behavior.

The function only uses QueryDosDeviceA() as an existence check for COM
ports, so removing the dead error-handling code does not change its
behavior.

Signed-off-by: Robin Getz <rgetz503@gmail.com>
2026-07-26 15:54:53 -04:00
Edouard Griffiths 7675cb3e4c Merge pull request #2846 from rgetz/rgetz-fix-uninitialized-variable-ft8
FT8/FT4: Remove uninitialized value warnings
2026-07-26 21:54:10 +02:00
Edouard Griffiths 7ade66e467 Merge pull request #2845 from rgetz/rgetz-fix-boolean-bitwise
Fix UDP port validation boolean operations
2026-07-26 21:40:09 +02:00
Robin Getz f57e6d3568 DATV: Replace DVB-S2 pilot VLA buffers with std::vector
Replace variable-length arrays used for DVB-S2 pilot symbol matching with
std::vector allocations.

Use vector::data() when passing buffers to the existing pointer-based
match_ph_amp() function. This removes non-standard VLA usage and improves
C++ portability without changing behavior.

Signed-off-by: Robin Getz <rgetz503@gmail.com>
2026-07-26 14:54:12 -04:00
Robin Getz def0a877db DATV: Replace DVB-S2 pilot VLA buffers with std::vector
Replace variable-length arrays used for DVB-S2 pilot symbol matching with
std::vector allocations.

Use vector::data() when passing buffers to the existing pointer-based
match_ph_amp() function. This removes additional non-standard VLA usage and
improves C++ portability without changing behavior.

Signed-off-by: Robin Getz <rgetz503@gmail.com>
2026-07-26 14:50:25 -04:00
Robin Getz 1e72e94bb5 DATV: Replace DVB-S2 SOF VLA buffer with std::vector
Replace the variable-length array used for SOF symbol buffering in the
DVB-S2 frame receiver with a std::vector allocation.

Use vector::data() when passing the buffer to the existing pointer-based
conjugate product function. This removes another non-standard VLA usage and
improves C++ portability without changing behavior.

Signed-off-by: Robin Getz <rgetz503@gmail.com>
2026-07-26 14:45:38 -04:00
Robin Getz 16ab693062 DATV: Replace DVB-S2 VLA buffers with std::vector
Replace non-standard variable-length arrays used for PLHEADER symbol
processing with std::vector allocations. Update buffer copies and pointer
interfaces accordingly while preserving existing behavior.

This removes VLA compiler/static analysis warnings and improves C++
portability.

Signed-off-by: Robin Getz <rgetz503@gmail.com>
2026-07-26 14:38:53 -04:00
Robin Getz 60dbed7fc3 dvbs2.h : remove tabs, replace with spaces
to match style

Signed-off-by: Robin Getz <rgetz503@gmail.com>
2026-07-26 14:33:38 -04:00
Edouard Griffiths 38a665f16f Merge pull request #2849 from srcejon/fix_2848
Attempt to fix debian build
2026-07-26 20:22:48 +02:00
Edouard Griffiths 31197025b4 Merge pull request #2844 from rgetz/rgetz-fix-testmi
testmi: Fix missing m_title copy in TestMISettings
2026-07-26 20:21:35 +02:00
Robin Getz 66d28efcc1 ADSB Demod: Fix incorrect iterator range when restoring column sizes
cppcheck reported that the std::copy() call used iterators from different
containers when restoring ADSB demod table column sizes.

The copy operation used settings.m_columnSizes as the source start iterator
but settings.m_columnIndexes as the source end iterator. This was likely a
copy/paste error and resulted in an invalid iterator range.

Use settings.m_columnSizes for both source iterators so column size settings
are restored correctly.

Signed-off-by: Robin Getz <rgetz503@gmail.com>
2026-07-26 13:44:02 -04:00
Robin Getz 3657fc1532 GLScope: Fix missing freerun setting copy in assignment operator
cppcheck reported that GLScopeSettings::operator=() did not assign the
m_freerun member variable.

m_freerun is part of the GLScope configuration state: it is initialized
in resetToDefaults(), and is persisted through serialize()/deserialize().
However, when a GLScopeSettings object was copied using the assignment
operator, the freerun state was not transferred from the source object.

This could result in two GLScopeSettings instances having different
freerun values after assignment, with the destination object retaining
its previous value instead of matching the source object.

Add the missing m_freerun assignment to ensure operator=() performs a
complete copy of the settings state and matches the existing
serialization behavior.

Signed-off-by: Robin Getz <rgetz503@gmail.com>
2026-07-26 13:28:46 -04:00
Edouard Griffiths b1e685b71c Merge pull request #2843 from rgetz/rgetz-fix-index-used-before-check
wdsp: Prevent potential out-of-bounds array access
2026-07-26 15:40:15 +02:00
Jon Beniston ab8c127a4a Fix sed script on Linux. Also fix new flatbuffer build on linux 2026-07-26 13:47:30 +01:00
Edouard Griffiths e01381996d Merge pull request #2842 from rgetz/rgetz-leansdr-fail-fatal
DATV: Convert leansdr fail and fatal errors into C++ exceptions
2026-07-26 13:30:01 +02:00
Edouard Griffiths 148ca3870e Merge pull request #2841 from rgetz/rgetz-reduce-vla-ldpctool-algorithms
step2 : reduce vlas
2026-07-26 09:59:50 +02:00
Edouard Griffiths 9306940671 Merge pull request #2840 from rgetz/rgetz-reduce-vla-leansdr
step 1 : reduce vla usage
2026-07-26 06:47:44 +02:00