[PATCH vkd3d 2/2] vkd3d-shader/hlsl: Fix a few memory leaks.

Giovanni Mascellani gmascellani at codeweavers.com
Mon Sep 27 07:41:32 CDT 2021


Signed-off-by: Giovanni Mascellani <gmascellani at codeweavers.com>
---
 libs/vkd3d-shader/hlsl.y | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/libs/vkd3d-shader/hlsl.y b/libs/vkd3d-shader/hlsl.y
index e9eac555..ecbbd4fc 100644
--- a/libs/vkd3d-shader/hlsl.y
+++ b/libs/vkd3d-shader/hlsl.y
@@ -2979,6 +2979,7 @@ postfix_expr:
             {
                 hlsl_error(ctx, @1, VKD3D_SHADER_ERROR_HLSL_INVALID_MODIFIER,
                         "Modifiers are not allowed on constructors.");
+                free_parse_initializer(&$4);
                 YYABORT;
             }
             if ($2->type > HLSL_CLASS_LAST_NUMERIC)
@@ -2989,6 +2990,7 @@ postfix_expr:
                     hlsl_error(ctx, @2, VKD3D_SHADER_ERROR_HLSL_INVALID_TYPE,
                             "Constructor data type %s is not numeric.", string->buffer);
                 hlsl_release_string_buffer(ctx, string);
+                free_parse_initializer(&$4);
                 YYABORT;
             }
             if ($2->dimx * $2->dimy != initializer_size(&$4))
@@ -2996,6 +2998,7 @@ postfix_expr:
                 hlsl_error(ctx, @4, VKD3D_SHADER_ERROR_HLSL_WRONG_PARAMETER_COUNT,
                         "Expected %u components in constructor, but got %u.",
                         $2->dimx * $2->dimy, initializer_size(&$4));
+                free_parse_initializer(&$4);
                 YYABORT;
             }
 
-- 
2.33.0




More information about the wine-devel mailing list