|
@@ -0,0 +1,33 @@
|
|
|
+using System;
|
|
|
+using System.Collections.Generic;
|
|
|
+using Jellyfin.Server.Middleware;
|
|
|
+using Microsoft.AspNetCore.Http;
|
|
|
+using Microsoft.AspNetCore.Http.Features;
|
|
|
+using Microsoft.Extensions.Primitives;
|
|
|
+using SharpFuzz;
|
|
|
+
|
|
|
+namespace Emby.Server.Implementations.Fuzz
|
|
|
+{
|
|
|
+ public static class Program
|
|
|
+ {
|
|
|
+ public static void Main(string[] args)
|
|
|
+ {
|
|
|
+ switch (args[0])
|
|
|
+ {
|
|
|
+ case "UrlDecodeQueryFeature": Run(UrlDecodeQueryFeature); return;
|
|
|
+ default: throw new ArgumentException($"Unknown fuzzing function: {args[0]}");
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ private static void Run(Action<string> action) => Fuzzer.OutOfProcess.Run(action);
|
|
|
+
|
|
|
+ private static void UrlDecodeQueryFeature(string data)
|
|
|
+ {
|
|
|
+ var dict = new Dictionary<string, StringValues>
|
|
|
+ {
|
|
|
+ { data, StringValues.Empty }
|
|
|
+ };
|
|
|
+ _ = new UrlDecodeQueryFeature(new QueryFeature(new QueryCollection(dict)));
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|