Skip to content

unified: do not call a null symbol in af_get_last_error - #3718

Draft
melonakos wants to merge 2 commits into
masterfrom
fix/3713-unified-null-symbol
Draft

melonakos wants to merge 2 commits into
masterfrom
fix/3713-unified-null-symbol

Conversation

@melonakos

Copy link
Copy Markdown
Member

When no backend is loaded, LOAD_SYMBOL() returns null and af_get_last_error called through it. The function returns void so it cannot report AF_ERR_LOAD_LIB; return an empty error instead. Fixes #3713.

LOAD_SYMBOL() returns null when no backend library is loaded or the
symbol cannot be resolved. af_get_last_error called the resulting
function pointer unconditionally, which is an indirect call through a
null pointer.

Every other unified entry point goes through CALL(), which null-checks
and returns AF_ERR_LOAD_LIB. af_get_last_error returns void and cannot,
so report an empty error instead.

Fixes #3713

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012SRueobKykUocB1SRdHsEE
@melonakos
melonakos force-pushed the fix/3713-unified-null-symbol branch from 701862a to 44d14aa Compare September 10, 2026 18:47
Every caller passes len as NULL and formats the message with %s, so a NULL string is undefined behaviour. Allocate an empty message the way the C API does.
@melonakos
melonakos force-pushed the fix/3713-unified-null-symbol branch from 44d14aa to 312bc21 Compare September 10, 2026 18:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[BUG] Unified backend: af_get_last_error calls unresolved symbol without null check

1 participant