[Mesa-dev] [PATCH 06/11] glsl: Check realloc return value in ir_function::matching_signature()
Anuj Phogat
anuj.phogat at gmail.com
Tue Sep 9 14:59:42 PDT 2014
On Mon, Sep 8, 2014 at 11:53 PM, Juha-Pekka Heikkila
<juhapekka.heikkila at gmail.com> wrote:
> Signed-off-by: Juha-Pekka Heikkila <juhapekka.heikkila at gmail.com>
> ---
> src/glsl/ir_function.cpp | 11 +++++++++--
> 1 file changed, 9 insertions(+), 2 deletions(-)
>
> diff --git a/src/glsl/ir_function.cpp b/src/glsl/ir_function.cpp
> index 98bec45..2b2643c 100644
> --- a/src/glsl/ir_function.cpp
> +++ b/src/glsl/ir_function.cpp
> @@ -24,6 +24,7 @@
> #include "glsl_types.h"
> #include "ir.h"
> #include "glsl_parser_extras.h"
> +#include "main/errors.h"
>
> typedef enum {
> PARAMETER_LIST_NO_MATCH,
> @@ -296,6 +297,7 @@ ir_function::matching_signature(_mesa_glsl_parse_state *state,
> bool *is_exact)
> {
> ir_function_signature **inexact_matches = NULL;
> + ir_function_signature **inexact_matches_temp;
> ir_function_signature *match = NULL;
> int num_inexact_matches = 0;
>
> @@ -321,11 +323,16 @@ ir_function::matching_signature(_mesa_glsl_parse_state *state,
> free(inexact_matches);
> return sig;
> case PARAMETER_LIST_INEXACT_MATCH:
> - inexact_matches = (ir_function_signature **)
> + inexact_matches_temp = (ir_function_signature **)
> realloc(inexact_matches,
> sizeof(*inexact_matches) *
> (num_inexact_matches + 1));
> - assert(inexact_matches);
> + if (inexact_matches_temp == NULL) {
> + _mesa_error_no_memory(__func__);
> + free(inexact_matches);
This free is not required. inexact_matches is null.
> + return NULL;
> + }
> + inexact_matches = inexact_matches_temp;
> inexact_matches[num_inexact_matches++] = sig;
> continue;
> case PARAMETER_LIST_NO_MATCH:
> --
> 1.8.5.1
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-dev
More information about the mesa-dev
mailing list