1 Star 0 Fork 30

lvxiaoqian / ImageMagick

forked from src-openEuler / ImageMagick 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
CVE-2020-29599-1.patch 2.18 KB
一键复制 编辑 原始数据 按行查看 历史
wangxiao65 提交于 2021-01-12 15:31 . fix CVE-2020-29599
From a7b2d8328c539da6e79a118a0b8e97462c7daa77 Mon Sep 17 00:00:00 2001
From: Cristy <urban-warrior@imagemagick.org>
Date: Sun, 10 Nov 2019 14:53:23 -0500
Subject: [PATCH] Santize ';' from SHOW and WIN delegates
---
magick/delegate.c | 26 +++++++++++++++++++++++++-
magick/string.c | 4 ++--
2 files changed, 27 insertions(+), 3 deletions(-)
diff --git a/magick/delegate.c b/magick/delegate.c
index 37cd77b39..4fec87fc6 100644
--- a/magick/delegate.c
+++ b/magick/delegate.c
@@ -507,6 +507,30 @@ MagickExport int ExternalDelegateCommand(const MagickBooleanType asynchronous,
%
*/
+static char *SanitizeDelegateString(const char *source)
+{
+ char
+ *sanitize_source;
+
+ const char
+ *q;
+
+ register char
+ *p;
+
+ static char
+ whitelist[] =
+ "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789 "
+ "$-_.+!*'(),{}|\\^~[]`\"><#%/?:@&=";
+
+ sanitize_source=AcquireString(source);
+ p=sanitize_source;
+ q=sanitize_source+strlen(sanitize_source);
+ for (p+=strspn(p,whitelist); p != q; p+=strspn(p,whitelist))
+ *p='_';
+ return(sanitize_source);
+}
+
static char *GetMagickPropertyLetter(const ImageInfo *image_info,Image *image,
const char letter)
{
@@ -918,7 +942,7 @@ static char *GetMagickPropertyLetter(const ImageInfo *image_info,Image *image,
break;
}
}
- return(SanitizeString(string));
+ return(SanitizeDelegateString(string));
}
static char *InterpretDelegateProperties(const ImageInfo *image_info,
diff --git a/magick/string.c b/magick/string.c
index 828f12a0c..1e4ae55cb 100644
--- a/magick/string.c
+++ b/magick/string.c
@@ -1588,10 +1588,10 @@ MagickExport void ResetStringInfo(StringInfo *string_info)
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
-% SanitizeString() returns an new string removes all characters except
+% SanitizeString() returns a new string removes all characters except
% letters, digits and !#$%&'*+-=?^_`{|}~@.[].
%
-% The returned string shoud be freed using DestoryString().
+% Free the sanitized string with DestroyString().
%
% The format of the SanitizeString method is:
%
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/lvxiaoqian/ImageMagick.git
git@gitee.com:lvxiaoqian/ImageMagick.git
lvxiaoqian
ImageMagick
ImageMagick
master

搜索帮助

344bd9b3 5694891 D2dac590 5694891