chore(MtimeSanitizer): Print bad values to help debugging

Signed-off-by: Git'Fellow <12234510+solracsf@users.noreply.github.com>
pull/54695/head
Git'Fellow 2025-08-28 11:44:06 +07:00 committed by GitHub
parent 706c78ff52
commit 995c97acb4
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 12 additions and 2 deletions

@ -14,12 +14,22 @@ class MtimeSanitizer {
// ensures that strings with hexadecimal notations fail too in PHP 5.X.
$isHexadecimal = preg_match('/^\s*0[xX]/', $mtimeFromRequest);
if ($isHexadecimal || !is_numeric($mtimeFromRequest)) {
throw new \InvalidArgumentException('X-OC-MTime header must be an integer (unix timestamp).');
throw new \InvalidArgumentException(
sprintf(
'X-OC-MTime header must be a valid integer (unix timestamp), got "%s".',
$mtimeFromRequest
)
);
}
// Prevent writing invalid mtime (timezone-proof)
if ((int)$mtimeFromRequest <= 24 * 60 * 60) {
throw new \InvalidArgumentException('X-OC-MTime header must be a valid positive integer');
throw new \InvalidArgumentException(
sprintf(
'X-OC-MTime header must be a valid positive unix timestamp greater than one day, got "%s".',
$mtimeFromRequest
)
);
}
return (int)$mtimeFromRequest;