From 8058497e179c725c69db9b26532e5acf09f0e112 Mon Sep 17 00:00:00 2001 From: Teo Voinea <58236992+tevoinea@users.noreply.github.com> Date: Fri, 13 Jan 2023 14:16:46 -0500 Subject: [PATCH 1/2] Truncate large webhook events (#2742) * Add ITrunctable * Tests * Pass some more tests * Cleanup --- .../ApiService/Functions/ValidateScriban.cs | 1 + .../ApiService/OneFuzzTypes/Events.cs | 18 ++++- .../ApiService/OneFuzzTypes/Model.cs | 63 ++++++++++++++-- .../ApiService/onefuzzlib/Reports.cs | 16 ++-- src/ApiService/ApiService/onefuzzlib/Utils.cs | 7 ++ .../onefuzzlib/WebhookOperations.cs | 16 +++- .../ApiService/onefuzzlib/orm/Orm.cs | 22 +++--- .../IntegrationTests/ReproVmssTests.cs | 1 + src/ApiService/Tests/OrmModelsTest.cs | 11 +-- src/ApiService/Tests/TemplateTests.cs | 1 + src/ApiService/Tests/TruncationTests.cs | 73 +++++++++++++++++++ 11 files changed, 197 insertions(+), 32 deletions(-) create mode 100644 src/ApiService/Tests/TruncationTests.cs diff --git a/src/ApiService/ApiService/Functions/ValidateScriban.cs b/src/ApiService/ApiService/Functions/ValidateScriban.cs index d3f9b37f623..d32f70b5231 100644 --- a/src/ApiService/ApiService/Functions/ValidateScriban.cs +++ b/src/ApiService/ApiService/Functions/ValidateScriban.cs @@ -103,6 +103,7 @@ public Async.Task Run([HttpTrigger(AuthorizationLevel.Anonymou null, null, null, + null, null ); diff --git a/src/ApiService/ApiService/OneFuzzTypes/Events.cs b/src/ApiService/ApiService/OneFuzzTypes/Events.cs index 7273bb9e7f7..e5f94ee0a2b 100644 --- a/src/ApiService/ApiService/OneFuzzTypes/Events.cs +++ b/src/ApiService/ApiService/OneFuzzTypes/Events.cs @@ -302,8 +302,13 @@ public record EventCrashReported( Container Container, [property: JsonPropertyName("filename")] String FileName, TaskConfig? TaskConfig -) : BaseEvent(); - +) : BaseEvent(), ITruncatable { + public BaseEvent Truncate(int maxLength) { + return this with { + Report = Report.Truncate(maxLength) + }; + } +} [EventType(EventType.RegressionReported)] public record EventRegressionReported( @@ -311,8 +316,13 @@ public record EventRegressionReported( Container Container, [property: JsonPropertyName("filename")] String FileName, TaskConfig? TaskConfig -) : BaseEvent(); - +) : BaseEvent(), ITruncatable { + public BaseEvent Truncate(int maxLength) { + return this with { + RegressionReport = RegressionReport.Truncate(maxLength) + }; + } +} [EventType(EventType.FileAdded)] public record EventFileAdded( diff --git a/src/ApiService/ApiService/OneFuzzTypes/Model.cs b/src/ApiService/ApiService/OneFuzzTypes/Model.cs index 83ed622734c..0ce97b28d13 100644 --- a/src/ApiService/ApiService/OneFuzzTypes/Model.cs +++ b/src/ApiService/ApiService/OneFuzzTypes/Model.cs @@ -457,8 +457,31 @@ public record Report( string? MinimizedStackFunctionLinesSha256, string? ToolName, string? ToolVersion, - string? OnefuzzVersion -) : IReport; + string? OnefuzzVersion, + Uri? ReportUrl +) : IReport, ITruncatable { + public Report Truncate(int maxLength) { + return this with { + Executable = Executable[..maxLength], + CrashType = CrashType[..Math.Min(maxLength, CrashType.Length)], + CrashSite = CrashSite[..Math.Min(maxLength, CrashSite.Length)], + CallStack = TruncateUtils.TruncateList(CallStack, maxLength), + CallStackSha256 = CallStackSha256[..Math.Min(maxLength, CallStackSha256.Length)], + InputSha256 = InputSha256[..Math.Min(maxLength, InputSha256.Length)], + AsanLog = AsanLog?[..Math.Min(maxLength, AsanLog.Length)], + ScarinessDescription = ScarinessDescription?[..Math.Min(maxLength, ScarinessDescription.Length)], + MinimizedStack = MinimizedStack != null ? TruncateUtils.TruncateList(MinimizedStack, maxLength) : MinimizedStack, + MinimizedStackSha256 = MinimizedStackSha256?[..Math.Min(maxLength, MinimizedStackSha256.Length)], + MinimizedStackFunctionNames = MinimizedStackFunctionNames != null ? TruncateUtils.TruncateList(MinimizedStackFunctionNames, maxLength) : MinimizedStackFunctionNames, + MinimizedStackFunctionNamesSha256 = MinimizedStackFunctionNamesSha256?[..Math.Min(maxLength, MinimizedStackFunctionNamesSha256.Length)], + MinimizedStackFunctionLines = MinimizedStackFunctionLines != null ? TruncateUtils.TruncateList(MinimizedStackFunctionLines, maxLength) : MinimizedStackFunctionLines, + MinimizedStackFunctionLinesSha256 = MinimizedStackFunctionLinesSha256?[..Math.Min(maxLength, MinimizedStackFunctionLinesSha256.Length)], + ToolName = ToolName?[..Math.Min(maxLength, ToolName.Length)], + ToolVersion = ToolVersion?[..Math.Min(maxLength, ToolVersion.Length)], + OnefuzzVersion = OnefuzzVersion?[..Math.Min(maxLength, OnefuzzVersion.Length)], + }; + } +} public record NoReproReport( string InputSha, @@ -468,18 +491,40 @@ public record NoReproReport( Guid JobId, long Tries, string? Error -); +) : ITruncatable { + public NoReproReport Truncate(int maxLength) { + return this with { + Executable = Executable?[..maxLength], + Error = Error?[..maxLength] + }; + } +} public record CrashTestResult( Report? CrashReport, NoReproReport? NoReproReport -); +) : ITruncatable { + public CrashTestResult Truncate(int maxLength) { + return new CrashTestResult( + CrashReport?.Truncate(maxLength), + NoReproReport?.Truncate(maxLength) + ); + } +} public record RegressionReport( CrashTestResult CrashTestResult, - CrashTestResult? OriginalCrashTestResult -) : IReport; - + CrashTestResult? OriginalCrashTestResult, + Uri? ReportUrl +) : IReport, ITruncatable { + public RegressionReport Truncate(int maxLength) { + return new RegressionReport( + CrashTestResult.Truncate(maxLength), + OriginalCrashTestResult?.Truncate(maxLength), + ReportUrl + ); + } +} [JsonConverter(typeof(NotificationTemplateConverter))] #pragma warning disable CA1715 @@ -968,3 +1013,7 @@ public record TemplateRenderContext( string ReportFilename, string ReproCmd ); + +public interface ITruncatable { + public T Truncate(int maxLength); +} diff --git a/src/ApiService/ApiService/onefuzzlib/Reports.cs b/src/ApiService/ApiService/onefuzzlib/Reports.cs index da8847aa895..355939be601 100644 --- a/src/ApiService/ApiService/onefuzzlib/Reports.cs +++ b/src/ApiService/ApiService/onefuzzlib/Reports.cs @@ -44,10 +44,12 @@ public Reports(ILogTracer log, IContainers containers) { return null; } - return ParseReportOrRegression(blob.ToString(), filePath, expectReports); + var reportUrl = await _containers.GetFileUrl(container, fileName, StorageType.Corpus); + + return ParseReportOrRegression(blob.ToString(), filePath, reportUrl, expectReports); } - private IReport? ParseReportOrRegression(string content, string? filePath, bool expectReports = false) { + private IReport? ParseReportOrRegression(string content, string? filePath, Uri? reportUrl, bool expectReports = false) { var regressionReport = JsonSerializer.Deserialize(content, EntityConverter.GetJsonSerializerOptions()); if (regressionReport == null || regressionReport.CrashTestResult == null) { var report = JsonSerializer.Deserialize(content, EntityConverter.GetJsonSerializerOptions()); @@ -55,10 +57,14 @@ public Reports(ILogTracer log, IContainers containers) { _log.Error($"unable to parse report ({filePath:Tag:FilePath}) as a report or regression"); return null; } - return report; + return report != null ? report with { ReportUrl = reportUrl } : report; } - return regressionReport; + return regressionReport != null ? regressionReport with { ReportUrl = reportUrl } : regressionReport; } } -public interface IReport { }; +public interface IReport { + Uri? ReportUrl { + init; + } +}; diff --git a/src/ApiService/ApiService/onefuzzlib/Utils.cs b/src/ApiService/ApiService/onefuzzlib/Utils.cs index 3ecd7ce97d6..b73aa721ef6 100644 --- a/src/ApiService/ApiService/onefuzzlib/Utils.cs +++ b/src/ApiService/ApiService/onefuzzlib/Utils.cs @@ -39,3 +39,10 @@ public static async IAsyncEnumerable> Chunk(this IAsyncEn } } } + +public static class TruncateUtils { + public static List TruncateList(List data, int maxLength) { + int currentLength = 0; + return data.TakeWhile(curr => (currentLength += curr.Length) <= maxLength).ToList(); + } +} diff --git a/src/ApiService/ApiService/onefuzzlib/WebhookOperations.cs b/src/ApiService/ApiService/onefuzzlib/WebhookOperations.cs index 0c11e2d7618..5d4599f7b72 100644 --- a/src/ApiService/ApiService/onefuzzlib/WebhookOperations.cs +++ b/src/ApiService/ApiService/onefuzzlib/WebhookOperations.cs @@ -34,6 +34,8 @@ async public Async.Task SendEvent(EventMessage eventMessage) { } async private Async.Task AddEvent(Webhook webhook, EventMessage eventMessage) { + (string, string)[] tags = { ("WebhookId", webhook.WebhookId.ToString()), ("EventId", eventMessage.EventId.ToString()) }; + var message = new WebhookMessageLog( EventId: eventMessage.EventId, EventType: eventMessage.EventType, @@ -46,8 +48,18 @@ async private Async.Task AddEvent(Webhook webhook, EventMessage eventMessage) { var r = await _context.WebhookMessageLogOperations.Replace(message); if (!r.IsOk) { - _logTracer.WithHttpStatus(r.ErrorV).Error($"Failed to replace webhook message log {webhook.WebhookId:Tag:WebhookId} - {eventMessage.EventId:Tag:EventId}"); + if (r.ErrorV.Reason.Contains("The entity is larger than the maximum allowed size") && eventMessage.Event is ITruncatable truncatableEvent) { + _logTracer.WithTags(tags).Warning($"The WebhookMessageLog was too long. Truncating event data and trying again."); + var truncatedEventMessage = message with { + Event = truncatableEvent.Truncate(1000) + }; + r = await _context.WebhookMessageLogOperations.Replace(truncatedEventMessage); + } + if (!r.IsOk) { + _logTracer.WithHttpStatus(r.ErrorV).WithTags(tags).Error($"Failed to replace webhook message log {webhook.WebhookId:Tag:WebhookId} - {eventMessage.EventId:Tag:EventId}"); + } } + await _context.WebhookMessageLogOperations.QueueWebhook(message); } @@ -57,7 +69,7 @@ public async Async.Task Send(WebhookMessageLog messageLog) { throw new Exception($"Invalid Webhook. Webhook with WebhookId: {messageLog.WebhookId} Not Found"); } - var (data, digest) = await BuildMessage(webhookId: webhook.WebhookId, eventId: messageLog.EventId, eventType: messageLog.EventType, webhookEvent: messageLog.Event, secretToken: webhook.SecretToken, messageFormat: webhook.MessageFormat); + var (data, digest) = await BuildMessage(webhookId: webhook.WebhookId, eventId: messageLog.EventId, eventType: messageLog.EventType, webhookEvent: messageLog.Event!, secretToken: webhook.SecretToken, messageFormat: webhook.MessageFormat); var headers = new Dictionary { { "User-Agent", $"onefuzz-webhook {_context.ServiceConfiguration.OneFuzzVersion}" } }; diff --git a/src/ApiService/ApiService/onefuzzlib/orm/Orm.cs b/src/ApiService/ApiService/onefuzzlib/orm/Orm.cs index b902c2f0e05..8b92017f42c 100644 --- a/src/ApiService/ApiService/onefuzzlib/orm/Orm.cs +++ b/src/ApiService/ApiService/onefuzzlib/orm/Orm.cs @@ -79,15 +79,19 @@ public async IAsyncEnumerable QueryAsync(string? filter = null) { } public async Task> Replace(T entity) { - var tableClient = await GetTableClient(typeof(T).Name); - var tableEntity = _entityConverter.ToTableEntity(entity); - var response = await tableClient.UpsertEntityAsync(tableEntity, TableUpdateMode.Replace); - if (response.IsError) { - return ResultVoid<(HttpStatusCode, string)>.Error(((HttpStatusCode)response.Status, response.ReasonPhrase)); - } else { - // update ETag on success - entity.ETag = response.Headers.ETag; - return ResultVoid<(HttpStatusCode, string)>.Ok(); + try { + var tableClient = await GetTableClient(typeof(T).Name); + var tableEntity = _entityConverter.ToTableEntity(entity); + var response = await tableClient.UpsertEntityAsync(tableEntity, TableUpdateMode.Replace); + if (response.IsError) { + return ResultVoid<(HttpStatusCode, string)>.Error(((HttpStatusCode)response.Status, response.ReasonPhrase)); + } else { + // update ETag on success + entity.ETag = response.Headers.ETag; + return ResultVoid<(HttpStatusCode, string)>.Ok(); + } + } catch (RequestFailedException ex) { + return ResultVoid<(HttpStatusCode, string)>.Error(((HttpStatusCode)ex.Status, ex.Message)); } } diff --git a/src/ApiService/IntegrationTests/ReproVmssTests.cs b/src/ApiService/IntegrationTests/ReproVmssTests.cs index afed702c752..6046eb0e737 100644 --- a/src/ApiService/IntegrationTests/ReproVmssTests.cs +++ b/src/ApiService/IntegrationTests/ReproVmssTests.cs @@ -190,6 +190,7 @@ public async Async.Task CannotCreateVMForMissingReport() { null, null, null, + null, null ); diff --git a/src/ApiService/Tests/OrmModelsTest.cs b/src/ApiService/Tests/OrmModelsTest.cs index ec953b23198..c8c19edcd1d 100644 --- a/src/ApiService/Tests/OrmModelsTest.cs +++ b/src/ApiService/Tests/OrmModelsTest.cs @@ -300,7 +300,7 @@ public static Gen WebhookMessageEventGrid() { } public static Gen Report() { - return Arb.Generate, Guid, int>>().Select( + return Arb.Generate, Guid, int, Uri?>>().Select( arg => new Report( InputUrl: arg.Item1, @@ -324,8 +324,8 @@ public static Gen Report() { MinimizedStackFunctionLinesSha256: arg.Item1, ToolName: arg.Item1, ToolVersion: arg.Item1, - OnefuzzVersion: arg.Item1 - + OnefuzzVersion: arg.Item1, + ReportUrl: arg.Item6 ) ); @@ -357,11 +357,12 @@ public static Gen CrashTestResult() { } public static Gen RegressionReport() { - return Arb.Generate>().Select( + return Arb.Generate>().Select( arg => new RegressionReport( arg.Item1, - arg.Item2 + arg.Item2, + arg.Item3 ) ); } diff --git a/src/ApiService/Tests/TemplateTests.cs b/src/ApiService/Tests/TemplateTests.cs index d1b7e16d6a8..9da5d1ecc21 100644 --- a/src/ApiService/Tests/TemplateTests.cs +++ b/src/ApiService/Tests/TemplateTests.cs @@ -190,6 +190,7 @@ private static Report GetReport() { null, null, null, + null, null ); } diff --git a/src/ApiService/Tests/TruncationTests.cs b/src/ApiService/Tests/TruncationTests.cs new file mode 100644 index 00000000000..1ee4689209a --- /dev/null +++ b/src/ApiService/Tests/TruncationTests.cs @@ -0,0 +1,73 @@ +using System; +using System.Collections.Generic; +using FluentAssertions; +using Microsoft.OneFuzz.Service; +using Xunit; + +namespace Tests; + +public class TruncationTests { + [Fact] + public static void ReportIsTruncatable() { + var report = GenerateReport(); + + var truncatedReport = report.Truncate(5); + + truncatedReport.Executable.Should().Be("SOMES"); + truncatedReport.CallStack.Count.Should().Be(0); + } + + [Fact] + public static void TestListTruncation() { + var testList = new List { + "1", "2", "3", "456" + }; + + var truncatedList = TruncateUtils.TruncateList(testList, 3); + truncatedList.Count.Should().Be(3); + truncatedList.Should().BeEquivalentTo(new[] { "1", "2", "3" }); + } + + [Fact] + public static void TestNestedTruncation() { + var eventCrashReported = new EventCrashReported( + GenerateReport(), + Container.Parse("123"), + "abc", + null + ); + + var truncatedEvent = eventCrashReported.Truncate(3) as EventCrashReported; + truncatedEvent.Should().NotBeNull(); + truncatedEvent?.Report.Executable.Should().Be("SOM"); + truncatedEvent?.Report.CallStack.Count.Should().Be(0); + } + + private static Report GenerateReport() { + return new Report( + null, + null, + "SOMESUPRTLONGSTRINGSOMESUPRTLONGSTRINGSOMESUPRTLONGSTRINGSOMESUPRTLONGSTRING", + "abc", + "abc", + new List { "SOMESUPRTLONGSTRINGSOMESUPRTLONGSTRING" }, + "abc", + "abc", + null, + Guid.Empty, + Guid.Empty, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + new Uri("http://example.com") + ); + } +} From 5bf0c21b574e5ae7ad8cb99388530f1604e82528 Mon Sep 17 00:00:00 2001 From: George Pollard Date: Wed, 18 Jan 2023 08:44:36 +1300 Subject: [PATCH 2/2] Update bumpalo to address RUSTSEC-2022-0078 (#2744) --- src/agent/Cargo.lock | 98 ++++++++++++++++++----- src/cli/extra/pyinstaller/hook-wcwidth.py | 13 --- src/proxy-manager/Cargo.lock | 4 +- src/utils/telemetry-stats/Cargo.lock | 4 +- 4 files changed, 81 insertions(+), 38 deletions(-) delete mode 100644 src/cli/extra/pyinstaller/hook-wcwidth.py diff --git a/src/agent/Cargo.lock b/src/agent/Cargo.lock index ed6da614dbc..74f7a0d1211 100644 --- a/src/agent/Cargo.lock +++ b/src/agent/Cargo.lock @@ -346,9 +346,9 @@ dependencies = [ [[package]] name = "bumpalo" -version = "3.7.1" +version = "3.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9df67f7bf9ef8498769f994239c45613ef0c5899415fb58e9add412d2c1a538" +checksum = "572f695136211188308f16ad2ca5c851a712c464060ae6974944458eb83880ba" [[package]] name = "byteorder" @@ -1839,10 +1839,8 @@ checksum = "e5d732bc30207a6423068df043e3d02e0735b155ad7ce1a6f76fe2baa5b158de" dependencies = [ "libc", "log", - "miow", - "ntapi", "wasi 0.11.0+wasi-snapshot-preview1", - "winapi", + "windows-sys 0.42.0", ] [[package]] @@ -2335,7 +2333,7 @@ dependencies = [ "libc", "redox_syscall", "smallvec", - "windows-sys", + "windows-sys 0.36.1", ] [[package]] @@ -2563,7 +2561,7 @@ checksum = "5c5c066e788f2eca1f84fbb2da941dfa255f220d57205350e60c3d8e60c6a735" dependencies = [ "libc", "signal-hook", - "windows-sys", + "windows-sys 0.36.1", ] [[package]] @@ -2891,7 +2889,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "88d6731146462ea25d9244b2ed5fd1d716d25c52e4d54aa4fb0f3c4e9854dbe2" dependencies = [ "lazy_static", - "windows-sys", + "windows-sys 0.36.1", ] [[package]] @@ -3131,9 +3129,9 @@ dependencies = [ [[package]] name = "socket2" -version = "0.4.2" +version = "0.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5dc90fe6c7be1a323296982db1836d1ea9e47b6839496dde9a541bc496df3516" +checksum = "02e2d2db9033d13a1567121ddd7a095ee144db4e1ca1b1bda3419bc0da294ebd" dependencies = [ "libc", "winapi", @@ -3588,21 +3586,22 @@ checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c" [[package]] name = "tokio" -version = "1.16.1" +version = "1.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c27a64b625de6d309e8c57716ba93021dccf1b3b5c97edd6d3dd2d2135afc0a" +checksum = "1d9f76183f91ecfb55e1d7d5602bd1d979e38a3a522fe900241cf195624d67ae" dependencies = [ + "autocfg", "bytes", "libc", "memchr", - "mio 0.7.13", + "mio 0.8.5", "num_cpus", - "once_cell", - "parking_lot 0.11.2", + "parking_lot 0.12.1", "pin-project-lite", "signal-hook-registry", + "socket2", "tokio-macros", - "winapi", + "windows-sys 0.42.0", ] [[package]] @@ -4071,43 +4070,100 @@ version = "0.36.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ea04155a16a59f9eab786fe12a4a450e75cdb175f9e0d80da1e17db09f55b8d2" dependencies = [ - "windows_aarch64_msvc", - "windows_i686_gnu", - "windows_i686_msvc", - "windows_x86_64_gnu", - "windows_x86_64_msvc", + "windows_aarch64_msvc 0.36.1", + "windows_i686_gnu 0.36.1", + "windows_i686_msvc 0.36.1", + "windows_x86_64_gnu 0.36.1", + "windows_x86_64_msvc 0.36.1", ] +[[package]] +name = "windows-sys" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7" +dependencies = [ + "windows_aarch64_gnullvm", + "windows_aarch64_msvc 0.42.1", + "windows_i686_gnu 0.42.1", + "windows_i686_msvc 0.42.1", + "windows_x86_64_gnu 0.42.1", + "windows_x86_64_gnullvm", + "windows_x86_64_msvc 0.42.1", +] + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.42.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c9864e83243fdec7fc9c5444389dcbbfd258f745e7853198f365e3c4968a608" + [[package]] name = "windows_aarch64_msvc" version = "0.36.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9bb8c3fd39ade2d67e9874ac4f3db21f0d710bee00fe7cab16949ec184eeaa47" +[[package]] +name = "windows_aarch64_msvc" +version = "0.42.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c8b1b673ffc16c47a9ff48570a9d85e25d265735c503681332589af6253c6c7" + [[package]] name = "windows_i686_gnu" version = "0.36.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "180e6ccf01daf4c426b846dfc66db1fc518f074baa793aa7d9b9aaeffad6a3b6" +[[package]] +name = "windows_i686_gnu" +version = "0.42.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "de3887528ad530ba7bdbb1faa8275ec7a1155a45ffa57c37993960277145d640" + [[package]] name = "windows_i686_msvc" version = "0.36.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e2e7917148b2812d1eeafaeb22a97e4813dfa60a3f8f78ebe204bcc88f12f024" +[[package]] +name = "windows_i686_msvc" +version = "0.42.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf4d1122317eddd6ff351aa852118a2418ad4214e6613a50e0191f7004372605" + [[package]] name = "windows_x86_64_gnu" version = "0.36.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4dcd171b8776c41b97521e5da127a2d86ad280114807d0b2ab1e462bc764d9e1" +[[package]] +name = "windows_x86_64_gnu" +version = "0.42.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1040f221285e17ebccbc2591ffdc2d44ee1f9186324dd3e84e99ac68d699c45" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.42.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "628bfdf232daa22b0d64fdb62b09fcc36bb01f05a3939e20ab73aaf9470d0463" + [[package]] name = "windows_x86_64_msvc" version = "0.36.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c811ca4a8c853ef420abd8592ba53ddbbac90410fab6903b3e79972a631f7680" +[[package]] +name = "windows_x86_64_msvc" +version = "0.42.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "447660ad36a13288b1db4d4248e857b510e8c3a225c822ba4fb748c0aafecffd" + [[package]] name = "winreg" version = "0.7.0" diff --git a/src/cli/extra/pyinstaller/hook-wcwidth.py b/src/cli/extra/pyinstaller/hook-wcwidth.py deleted file mode 100644 index d2002e6f789..00000000000 --- a/src/cli/extra/pyinstaller/hook-wcwidth.py +++ /dev/null @@ -1,13 +0,0 @@ -#!/usr/bin/env python -# -# Copyright (c) Microsoft Corporation. -# Licensed under the MIT License. - -import os - -from PyInstaller.utils.hooks import get_module_file_attribute - -res_loc = os.path.dirname(get_module_file_attribute("wcwidth")) -datas = [ - (os.path.join(res_loc, "version.json"), "wcwidth"), -] diff --git a/src/proxy-manager/Cargo.lock b/src/proxy-manager/Cargo.lock index 0aed3fb2495..c7023974814 100644 --- a/src/proxy-manager/Cargo.lock +++ b/src/proxy-manager/Cargo.lock @@ -114,9 +114,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bumpalo" -version = "3.7.1" +version = "3.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9df67f7bf9ef8498769f994239c45613ef0c5899415fb58e9add412d2c1a538" +checksum = "572f695136211188308f16ad2ca5c851a712c464060ae6974944458eb83880ba" [[package]] name = "bytes" diff --git a/src/utils/telemetry-stats/Cargo.lock b/src/utils/telemetry-stats/Cargo.lock index 54a9b4ede1b..64efa0b366f 100644 --- a/src/utils/telemetry-stats/Cargo.lock +++ b/src/utils/telemetry-stats/Cargo.lock @@ -25,9 +25,9 @@ checksum = "cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a" [[package]] name = "bumpalo" -version = "3.11.0" +version = "3.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1ad822118d20d2c234f427000d5acc36eabe1e29a348c89b63dd60b13f28e5d" +checksum = "572f695136211188308f16ad2ca5c851a712c464060ae6974944458eb83880ba" [[package]] name = "cfg-if"