Added patch to fix endless loop in regedit when importing files with very long lines.

This commit is contained in:
Sebastian Lackner
2015-06-06 04:53:33 +02:00
parent a0f1f35843
commit cc1da4895e
5 changed files with 71 additions and 25 deletions

View File

@@ -196,6 +196,7 @@ patch_enable_all ()
enable_nvencodeapi_Video_Encoder="$1"
enable_opengl32_Revert_Disable_Ext="$1"
enable_quartz_MediaSeeking_Positions="$1"
enable_regedit_Reg_Parser="$1"
enable_riched20_IText_Interface="$1"
enable_riched20_Link_Notification="$1"
enable_rpcrt4_Pipe_Transport="$1"
@@ -660,6 +661,9 @@ patch_enable ()
quartz-MediaSeeking_Positions)
enable_quartz_MediaSeeking_Positions="$2"
;;
regedit-Reg_Parser)
enable_regedit_Reg_Parser="$2"
;;
riched20-IText_Interface)
enable_riched20_IText_Interface="$2"
;;
@@ -4168,6 +4172,18 @@ if test "$enable_quartz_MediaSeeking_Positions" -eq 1; then
) >> "$patchlist"
fi
# Patchset regedit-Reg_Parser
# |
# | Modified files:
# | * programs/regedit/regproc.c
# |
if test "$enable_regedit_Reg_Parser" -eq 1; then
patch_apply regedit-Reg_Parser/0001-regedit-Need-3-bytes-of-room-at-end-of-buffer-for-r-.patch
(
echo '+ { "Jiaxing Wang", "regedit: Need 3 bytes of room at end of buffer for \\\\r\\\\n\\\\0 to avoid endless loop.", 1 },';
) >> "$patchlist"
fi
# Patchset riched20-IText_Interface
# |
# | Modified files:
@@ -5102,6 +5118,30 @@ if test "$enable_wined3d_CSMT_Helper" -eq 1; then
) >> "$patchlist"
fi
# Patchset wined3d-UnhandledBlendFactor
# |
# | Modified files:
# | * dlls/wined3d/state.c
# |
if test "$enable_wined3d_UnhandledBlendFactor" -eq 1; then
patch_apply wined3d-UnhandledBlendFactor/0001-wined3d-Silence-repeated-Unhandled-blend-factor-0-me.patch
(
echo '+ { "Sebastian Lackner", "wined3d: Silence repeated '\''Unhandled blend factor 0'\'' messages.", 1 },';
) >> "$patchlist"
fi
# Patchset wined3d-wined3d_swapchain_present
# |
# | Modified files:
# | * dlls/wined3d/swapchain.c
# |
if test "$enable_wined3d_wined3d_swapchain_present" -eq 1; then
patch_apply wined3d-wined3d_swapchain_present/0001-wined3d-Silence-repeated-wined3d_swapchain_present-F.patch
(
echo '+ { "Sebastian Lackner", "wined3d: Silence repeated wined3d_swapchain_present FIXME.", 1 },';
) >> "$patchlist"
fi
# Patchset wined3d-Revert_PixelFormat
# |
# | This patchset fixes the following Wine bugs:
@@ -5148,30 +5188,6 @@ if test "$enable_wined3d_resource_check_usage" -eq 1; then
) >> "$patchlist"
fi
# Patchset wined3d-UnhandledBlendFactor
# |
# | Modified files:
# | * dlls/wined3d/state.c
# |
if test "$enable_wined3d_UnhandledBlendFactor" -eq 1; then
patch_apply wined3d-UnhandledBlendFactor/0001-wined3d-Silence-repeated-Unhandled-blend-factor-0-me.patch
(
echo '+ { "Sebastian Lackner", "wined3d: Silence repeated '\''Unhandled blend factor 0'\'' messages.", 1 },';
) >> "$patchlist"
fi
# Patchset wined3d-wined3d_swapchain_present
# |
# | Modified files:
# | * dlls/wined3d/swapchain.c
# |
if test "$enable_wined3d_wined3d_swapchain_present" -eq 1; then
patch_apply wined3d-wined3d_swapchain_present/0001-wined3d-Silence-repeated-wined3d_swapchain_present-F.patch
(
echo '+ { "Sebastian Lackner", "wined3d: Silence repeated wined3d_swapchain_present FIXME.", 1 },';
) >> "$patchlist"
fi
# Patchset wined3d-Multisampling
# |
# | This patchset fixes the following Wine bugs:

View File

@@ -0,0 +1,26 @@
From cda8b02c4668966712fb2eeca1e821b22f500575 Mon Sep 17 00:00:00 2001
From: Jiaxing Wang <hello.wjx@gmail.com>
Date: Thu, 21 May 2015 19:14:53 +0800
Subject: regedit: Need 3 bytes of room at end of buffer for \r\n\0 to avoid
endless loop.
---
programs/regedit/regproc.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/programs/regedit/regproc.c b/programs/regedit/regproc.c
index 643b559..2d766de 100644
--- a/programs/regedit/regproc.c
+++ b/programs/regedit/regproc.c
@@ -641,7 +641,7 @@ static void processRegLinesA(FILE *in, char* first_chars)
/* Do we need to expand the buffer ? */
assert (s >= line && s <= line + lineSize);
size_remaining = lineSize - (s-line);
- if (size_remaining < 2) /* room for 1 character and the \0 */
+ if (size_remaining < 3) /* need at least 3 bytes of room for \r\n\0 */
{
char *new_buffer;
size_t new_size = lineSize + REG_VAL_BUF_SIZE;
--
2.4.2

View File

@@ -0,0 +1 @@
Fixes: Fix endless loop in regedit when importing files with very long lines