This commit is contained in:
Fathi Ben Nasr 2026-08-12 23:38:56 +00:00 committed by GitHub
commit e849f2b21c
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 14 additions and 2 deletions

View file

@ -47,7 +47,14 @@ class CURL extends \SnappyMail\HTTP\Request
\curl_setopt($c, CURLOPT_CAINFO, $this->ca_bundle);
}
if ($extra_headers) {
\curl_setopt($c, CURLOPT_HTTPHEADER, $extra_headers);
// CURLOPT_HTTPHEADER expects a flat list of "Name: value" strings.
// Callers may pass an associative array, in which case curl sends
// the bare values as malformed header lines and drops them.
$aHeaderLines = array();
foreach ($extra_headers as $mKey => $sValue) {
$aHeaderLines[] = \is_int($mKey) ? $sValue : "{$mKey}: {$sValue}";
}
\curl_setopt($c, CURLOPT_HTTPHEADER, $aHeaderLines);
}
if ($this->auth['user'] && $this->auth['type']) {
if ($this->auth['type'] & self::AUTH_BEARER ) {

View file

@ -43,7 +43,12 @@ class Socket extends \SnappyMail\HTTP\Request
$extra_headers['Authorization'] = static::$Authorization[$host];
}
if ($extra_headers) {
$headers = \array_merge($headers, $extra_headers);
// $headers is a flat list of "Name: value" strings, so an
// associative $extra_headers would lose its keys in the implode()
// below and emit bare values as malformed header lines.
foreach ($extra_headers as $mKey => $sValue) {
$headers[] = \is_int($mKey) ? $sValue : "{$mKey}: {$sValue}";
}
}
$headers = \implode("\r\n", $headers);
if (!\is_null($body)) {