From: MegaBrutal <code+git@megabrutal.com>
Date: Sat, 25 Jun 2022 23:30:00 +0000 (+0200)
Subject: Return error on too much data
X-Git-Url: http://git.megabrutal.com/?a=commitdiff_plain;h=4ec5a600bb884d3f5b71640c85ee8d1492353597;p=litoprism.git

Return error on too much data
---

diff --git a/src/main.rs b/src/main.rs
index f46e88f..c9c48b8 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -11,6 +11,7 @@ use actix_web::http::StatusCode;
 use image::{ImageBuffer, ColorType, Rgb, RgbImage, write_buffer_with_format};
 use image::ImageOutputFormat::Png;
 use image::imageops::{FilterType, resize};
+use image::error::{LimitError, LimitErrorKind};
 
 
 #[derive(Debug)]
@@ -28,7 +29,7 @@ impl ResponseError for ImageError {
     }
 
     fn error_response(&self) -> HttpResponse<BoxBody> {
-        HttpResponse::InternalServerError().finish()
+        HttpResponse::InternalServerError().body(format!("{}\n", &self))
     }
 }
 
@@ -74,7 +75,7 @@ fn make_png(dim_x: u32, dim_y: u32, scale: u32, data: &mut dyn Iterator<Item = u
     let mut pixels = img.pixels_mut();
 
     for sp in ToRgbIter::new(data) {
-        let mut dp = pixels.next().unwrap();
+        let mut dp = pixels.next().ok_or(ImageError(image::ImageError::Limits(LimitError::from_kind(LimitErrorKind::DimensionError))))?;
         println!("{:?}", sp);
         dp.0 = sp.0;
     }