From 67edcd035cd094620abc77a25ba2795c3513ebc4 Mon Sep 17 00:00:00 2001 From: Kyle Spearrin Date: Fri, 11 Aug 2017 23:08:41 -0400 Subject: [PATCH] license adjustments for premium creation --- src/Api/Controllers/AccountsController.cs | 36 +++++++++++++------ .../Services/Implementations/UserService.cs | 2 +- 2 files changed, 26 insertions(+), 12 deletions(-) diff --git a/src/Api/Controllers/AccountsController.cs b/src/Api/Controllers/AccountsController.cs index 52475e8718..34e57461ba 100644 --- a/src/Api/Controllers/AccountsController.cs +++ b/src/Api/Controllers/AccountsController.cs @@ -396,22 +396,36 @@ namespace Bit.Api.Controllers UserLicense license = null; if(valid && _globalSettings.SelfHosted && model.License != null) { - try - { - using (var stream = model.License.OpenReadStream()) - using(var reader = new StreamReader(stream)) - { - var s = await reader.ReadToEndAsync(); - license = JsonConvert.DeserializeObject(s); - } - } - catch + if(!HttpContext.Request.ContentLength.HasValue || HttpContext.Request.ContentLength.Value > 51200) // 50 KB { valid = false; } + else + { + try + { + using(var stream = model.License.OpenReadStream()) + using(var reader = new StreamReader(stream)) + { + var s = await reader.ReadToEndAsync(); + if(string.IsNullOrWhiteSpace(s)) + { + valid = false; + } + else + { + license = JsonConvert.DeserializeObject(s); + } + } + } + catch + { + valid = false; + } + } } - if(!valid) + if(!valid || (_globalSettings.SelfHosted && license == null)) { throw new BadRequestException("Invalid license."); } diff --git a/src/Core/Services/Implementations/UserService.cs b/src/Core/Services/Implementations/UserService.cs index 6dcf2f5a4d..f0b542f661 100644 --- a/src/Core/Services/Implementations/UserService.cs +++ b/src/Core/Services/Implementations/UserService.cs @@ -572,7 +572,7 @@ namespace Bit.Core.Services if(_globalSettings.SelfHosted) { - user.MaxStorageGb = 10240; + user.MaxStorageGb = 10240; // 10 TB user.LicenseKey = license.LicenseKey; } else