From 7a3e8cf1985b988d522ad196b4718487ce41a5d5 Mon Sep 17 00:00:00 2001 From: Sebastien Helleu Date: Sat, 21 Jul 2012 17:22:45 +0200 Subject: [PATCH] core: fix crash when reading array value of hdata variable with type integer/long/time --- src/core/wee-hdata.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/core/wee-hdata.c b/src/core/wee-hdata.c index 0c0391063..53d0cbcaa 100644 --- a/src/core/wee-hdata.c +++ b/src/core/wee-hdata.c @@ -499,7 +499,7 @@ hdata_integer (struct t_hdata *hdata, void *pointer, const char *name) if (hdata_get_var_array_size_string (hdata, pointer, ptr_name)) { if (*((void **)(pointer + offset))) - return (*((int **)(pointer + offset)))[index]; + return ((int *)(pointer + offset))[index]; } else return *((int *)(pointer + offset)); @@ -528,7 +528,7 @@ hdata_long (struct t_hdata *hdata, void *pointer, const char *name) if (hdata_get_var_array_size_string (hdata, pointer, ptr_name)) { if (*((void **)(pointer + offset))) - return (*((long **)(pointer + offset)))[index]; + return ((long *)(pointer + offset))[index]; } else return *((long *)(pointer + offset)); @@ -615,7 +615,7 @@ hdata_time (struct t_hdata *hdata, void *pointer, const char *name) if (hdata_get_var_array_size_string (hdata, pointer, ptr_name)) { if (*((void **)(pointer + offset))) - return (*((time_t **)(pointer + offset)))[index]; + return ((time_t *)(pointer + offset))[index]; } else return *((time_t *)(pointer + offset));