Use asp validation and increase max size

This commit is contained in:
Cody Robibero 2021-07-09 09:07:22 -06:00
parent d8b9f4dc2d
commit e7022cc3fc
1 changed files with 1 additions and 16 deletions

View File

@ -302,27 +302,12 @@ namespace Jellyfin.Api.Controllers
/// </summary> /// </summary>
/// <param name="size">The bitrate. Defaults to 102400.</param> /// <param name="size">The bitrate. Defaults to 102400.</param>
/// <response code="200">Test buffer returned.</response> /// <response code="200">Test buffer returned.</response>
/// <response code="400">Size has to be a numer between 0 and 10,000,000.</response>
/// <returns>A <see cref="FileResult"/> with specified bitrate.</returns> /// <returns>A <see cref="FileResult"/> with specified bitrate.</returns>
[HttpGet("Playback/BitrateTest")] [HttpGet("Playback/BitrateTest")]
[ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)]
[Produces(MediaTypeNames.Application.Octet)]
[ProducesFile(MediaTypeNames.Application.Octet)] [ProducesFile(MediaTypeNames.Application.Octet)]
public ActionResult GetBitrateTestBytes([FromQuery] int size = 102400) public ActionResult GetBitrateTestBytes([FromQuery][Range(1, 100_000_000, ErrorMessage = "The requested size must be greater than 0 and less than 100,000,000")] int size = 102400)
{ {
const int MaxSize = 10_000_000;
if (size <= 0)
{
return BadRequest($"The requested size ({size}) is equal to or smaller than 0.");
}
if (size > MaxSize)
{
return BadRequest($"The requested size ({size}) is larger than the max allowed value ({MaxSize}).");
}
byte[] buffer = ArrayPool<byte>.Shared.Rent(size); byte[] buffer = ArrayPool<byte>.Shared.Rent(size);
try try
{ {