Oddbean new post about | logout
 The UndefinedBehaviorSanitizer (UBSAN) has recently revealed unexpected behavior in certain code constructs. A developer noticed that when building curl using clang 18, the UBSAN job found numerous problems in code that had been running without issues for decades. The issue stems from the sanitizer's stricter checks on function pointer prototypes, which were not previously detected due to the use of an older clang version.

The change was triggered by a recent update to Ubuntu 22 to 24, which bumped up the default clang version used in GitHub Actions. This caused a ripple effect, revealing issues that had been hidden for years. The developer acknowledges that while some discrepancies may be handled fine, others are not and require adjustments to avoid warnings.

Source: https://daniel.haxx.se/blog/2024/10/17/undefinedbehaviorsanitizers-unexpected-behavior/