Commit 39ad88fc5 for imagemagick.org
commit 39ad88fc5637b0ed9d2adbf37c3c5f6f174c63a3
Author: Cristy <urban-warrior@imagemagick.org>
Date: Fri Oct 30 21:45:36 2026 -0400
https://github.com/ImageMagick/ImageMagick/pull/9062
diff --git a/MagickCore/distribute-cache.c b/MagickCore/distribute-cache.c
index 1cad3327d..331ed68e3 100644
--- a/MagickCore/distribute-cache.c
+++ b/MagickCore/distribute-cache.c
@@ -870,7 +870,7 @@ static int ComputeHMACSHA256Mac(const void *key,size_t key_length,
((message == (const void *) NULL) && (message_length != 0)))
return(-1);
if (key_length > 64)
- ComputeSHA256Hash(key,key_length,k_prime);
+ ComputeSHA256Hash((unsigned char *) key,key_length,k_prime);
else
(void) memcpy(k_prime,key,key_length);
/*
@@ -886,7 +886,7 @@ static int ComputeHMACSHA256Mac(const void *key,size_t key_length,
*/
InitializeSHA256Hash(&sha256_hash);
UpdateSHA256Hash(&sha256_hash,inner_pad,64);
- UpdateSHA256Hash(&sha256_hash,message,message_length);
+ UpdateSHA256Hash(&sha256_hash,(unsigned char *) message,message_length);
FinalizeSHA256Hash(&sha256_hash,inner_hash);
/*
Outer hash: SHA256(outer pad || inner hash)
diff --git a/MagickCore/stream.c b/MagickCore/stream.c
index 8e37d8b5a..339e1e0f9 100644
--- a/MagickCore/stream.c
+++ b/MagickCore/stream.c
@@ -1295,9 +1295,23 @@ static size_t WriteStreamImage(const Image *image,const void *pixels,
Write a portion of the pixel row to the stream.
*/
(void) StreamImagePixels(stream_info,image,stream_info->exception);
- length=packet_size*extract_info.width;
- count=WriteBlob(stream_info->stream,length,stream_info->pixels+(ssize_t)
- packet_size*extract_info.x);
+ count=1;
+ if ((extract_info.x < (ssize_t) image->columns) &&
+ ((extract_info.x + (ssize_t) extract_info.width) > 0))
+ {
+ ssize_t x = extract_info.x;
+ size_t width = extract_info.width;
+ if (x < 0)
+ {
+ width+=x;
+ x=0;
+ }
+ if ((x+(ssize_t) width) > (ssize_t) image->columns)
+ width=(size_t) ((ssize_t) image->columns-x);
+ length=packet_size*width;
+ count=WriteBlob(stream_info->stream,length,stream_info->pixels+
+ packet_size*x);
+ }
stream_info->y++;
return(count == 0 ? 0 : columns);
}