aboutsummaryrefslogtreecommitdiff
path: root/fuzz/Emby.Server.Implementations.Fuzz/Program.cs
blob: a4a6f5f54dcaaf101f9f75a496442199634a2814 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
using System;
using Emby.Server.Implementations.Library;
using SharpFuzz;

namespace Emby.Server.Implementations.Fuzz
{
    public static class Program
    {
        public static void Main(string[] args)
        {
            switch (args[0])
            {
                case "PathExtensions.TryReplaceSubPath": Run(PathExtensions_TryReplaceSubPath); return;
                default: throw new ArgumentException($"Unknown fuzzing function: {args[0]}");
            }
        }

        private static void Run(Action<string> action) => Fuzzer.OutOfProcess.Run(action);

        private static void PathExtensions_TryReplaceSubPath(string data)
        {
            // Stupid, but it worked
            var parts = data.Split(':');
            if (parts.Length != 3)
            {
                return;
            }

            _ = PathExtensions.TryReplaceSubPath(parts[0], parts[1], parts[2], out _);
        }
    }
}