1
0
mirror of synced 2025-07-26 12:41:03 +03:00
This commit is contained in:
yhirose
2025-07-24 19:35:47 -04:00
parent 890a2dd85d
commit 8e8a23e3d2

View File

@ -5440,17 +5440,30 @@ inline bool parse_accept_header(const std::string &s,
return; return;
} }
try { #ifdef CPPHTTPLIB_NO_EXCEPTIONS
accept_entry.quality = std::stod(quality_str); {
// Check if quality is in valid range [0.0, 1.0] std::istringstream iss(quality_str);
if (accept_entry.quality < 0.0 || accept_entry.quality > 1.0) { iss >> accept_entry.quality;
// Check if conversion was successful and entire string was consumed
if (iss.fail() || !iss.eof()) {
has_invalid_entry = true; has_invalid_entry = true;
return; return;
} }
}
#else
try {
accept_entry.quality = std::stod(quality_str);
} catch (...) { } catch (...) {
has_invalid_entry = true; has_invalid_entry = true;
return; return;
} }
#endif
// Check if quality is in valid range [0.0, 1.0]
if (accept_entry.quality < 0.0 || accept_entry.quality > 1.0) {
has_invalid_entry = true;
return;
}
} else { } else {
// No quality parameter, use entire entry as media type // No quality parameter, use entire entry as media type
accept_entry.media_type = entry; accept_entry.media_type = entry;