Files
qobuz-qt/rust/Cargo.toml
joren 5bda2396d1 fix: security hardening and code quality improvements
Build hardening:
- Add -fstack-protector-strong, -D_FORTIFY_SOURCE=2, PIE, full RELRO
- Enable overflow-checks in Rust release profile

Rust backend:
- Return null (not panic) if Tokio runtime or QobuzClient init fails
- Strip null bytes in FFI JSON callback to prevent CString panics
- Document MD5 and password-in-query as Qobuz API constraints

C++ frontend:
- Validate JSON document before accessing fields in onEvent()
- Handle null backend pointer from failed init
- Set biography label to PlainText and decode HTML entities to prevent
  rendering injected content from API responses
- Clamp slider position and guard negative durations
- Use qint64 for duration formatting to avoid int truncation

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-24 23:19:04 +01:00

35 lines
732 B
TOML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
[package]
name = "qobuz-backend"
version = "0.1.0"
edition = "2021"
[lib]
name = "qobuz_backend"
crate-type = ["staticlib"]
[dependencies]
# HTTP client blocking feature is needed by the audio decoder
reqwest = { version = "0.12", features = ["json", "rustls-tls", "stream", "blocking"], default-features = false }
tokio = { version = "1", features = ["full"] }
# Serialization
serde = { version = "1", features = ["derive"] }
serde_json = "1"
# Audio decoding + output
symphonia = { version = "0.5", features = ["all"] }
cpal = { version = "0.15", features = ["jack"] }
rb = "0.3"
# Misc
anyhow = "1"
thiserror = "2"
md5 = "0.7"
dirs = "5"
toml = "0.8"
[profile.release]
lto = "thin"
opt-level = 3
overflow-checks = true