imazen / imageflow

High-performance image manipulation for web servers. Includes imageflow_server, imageflow_tool, and libimageflow
https://docs.imageflow.io/
GNU Affero General Public License v3.0
4.14k stars 140 forks source link

Negative height bug: Fuzzing command string #605

Closed lilith closed 1 year ago

lilith commented 1 year ago
One or more errors occurred.
   at System.Threading.Tasks.Task`1.GetResultCore(Boolean waitCompletionNotification)
   at ImageResizer.Plugins.ImageflowPlugin.ImageflowBuilderPlugin.DoJobWithImageflow(Stream source, ImageJob job) in C:\Users\lilith\imazen\resizer\Plugins\ImageResizer.Plugins.Imageflow\ImageflowBuilderPlugin.cs:line 109
   at ImageResizer.Plugins.ImageflowPlugin.ImageflowBuilderPlugin.BuildJob(ImageJob job) in C:\Users\lilith\imazen\resizer\Plugins\ImageResizer.Plugins.Imageflow\ImageflowBuilderPlugin.cs:line 187
   at ImageResizer.Resizing.AbstractImageProcessor.BuildJob(ImageJob job) in C:\Users\lilith\imazen\resizer\Core\Resizing\AbstractImageProcessor.cs:line 159
   at ImageResizer.ImageBuilder.BuildJob(ImageJob job) in C:\Users\lilith\imazen\resizer\Core\ImageBuilder.cs:line 521
   at ImageResizer.ImageBuilder.BuildInternal(ImageJob job) in C:\Users\lilith\imazen\resizer\Core\ImageBuilder.cs:line 503
   at ImageResizer.ImageBuilder.BuildInQueue(ImageJob job, Boolean useSemaphore, Int32 maxQueuingMilliseconds, CancellationToken cancel) in C:\Users\lilith\imazen\resizer\Core\ImageBuilder.cs:line 487
   at ImageResizer.ImageBuilder.Build(ImageJob job) in C:\Users\lilith\imazen\resizer\Core\ImageBuilder.cs:line 463
   at ImageResizer.AllPlugins.Tests.TestAll.RandomTest(Object source, String query) in C:\Users\lilith\imazen\resizer\Tests\ImageResizer.AllPlugins.Tests\TestAll.cs:line 142

Imageflow.Bindings.ImageflowException
ArgumentInvalid: LayoutError: ValueScalingFailed { ratio: 1.334448160535117, basis: -100, invalid_result: -133.44481605351172 } at
imageflow_core\src\flow\nodes\command_string.rs:96:61
https://github.com/imazen/imageflow/blob/70945c00267a99d678fb0d53e675dc7827e12fe2/imageflow_core/src/flow/nodes/command_string.rs#L96
imageflow_core\src\flow\execution_engine.rs:294:29
https://github.com/imazen/imageflow/blob/70945c00267a99d678fb0d53e675dc7827e12fe2/imageflow_core/src/flow/execution_engine.rs#L294
imageflow_core\src\flow\execution_engine.rs:400:89
https://github.com/imazen/imageflow/blob/70945c00267a99d678fb0d53e675dc7827e12fe2/imageflow_core/src/flow/execution_engine.rs#L400
imageflow_core\src\context.rs:419:59
https://github.com/imazen/imageflow/blob/70945c00267a99d678fb0d53e675dc7827e12fe2/imageflow_core/src/context.rs#L419
imageflow_core\src\context_methods.rs:50:68
https://github.com/imazen/imageflow/blob/70945c00267a99d678fb0d53e675dc7827e12fe2/imageflow_core/src/context_methods.rs#L50
Active node:
NodeDebugInfo {
    stable_id: -1,
    params: Json(
        CommandString {
            kind: ImageResizer4,
            value: "h=-100&maxwidth=2&mode=crop",
            decode: None,
            encode: Some(
                1,
            ),
            watermarks: None,
        },
    ),
    index: NodeIndex(0),
}

   at Imageflow.Bindings.JobContext.AssertReady()
   at Imageflow.Bindings.JobContext.SendJsonBytes(String method, Byte[] utf8Json)
   at Imageflow.Fluent.ImageJob.<FinishAsync>d__29.MoveNext()
lilith commented 1 year ago

Fixed in main