diff options
| author | William Clark <wclark@codeaurora.org> | 2015-07-10 09:40:07 -0700 |
|---|---|---|
| committer | David Keitel <dkeitel@codeaurora.org> | 2016-03-23 19:58:12 -0700 |
| commit | 5f0d2109e18c8010eb0bdfacd1e4e04d86f132aa (patch) | |
| tree | 06e2a8a3d958a434199f9304970b45363b101ef5 | |
| parent | 0990b375056e00fb1f8051e51a81079eeb9b72a3 (diff) | |
seemp: prevent assert
The change fixes event parameter encoding for seemp. It will
prevent an assert in seemp functioning
Change-Id: Ib3681d526a1dfb45cd5de5a40ee8cf07e02296dd
Signed-off-by: William Clark <wclark@codeaurora.org>
| -rw-r--r-- | drivers/platform/msm/seemp_core/seemp_event_encoder.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/drivers/platform/msm/seemp_core/seemp_event_encoder.c b/drivers/platform/msm/seemp_core/seemp_event_encoder.c index 1d2b67bf267d..7014a2e441fa 100644 --- a/drivers/platform/msm/seemp_core/seemp_event_encoder.c +++ b/drivers/platform/msm/seemp_core/seemp_event_encoder.c @@ -13,24 +13,24 @@ #define PROVIDE_PARAM_ID +#include "seemp_logk.h" #include <linux/seemp_param_id.h> #include "seemp_event_encoder.h" -#include "seemp_logk.h" static char *scan_id(char *s); static void encode_seemp_section(char *section_start, char *section_eq, char *section_end, bool param, bool numeric, int id, __s32 numeric_value); -static void check_param_range(char *section_eq, char **s, char ch, bool *param, +static void check_param_range(char *section_eq, bool *param, bool *numeric, int val_len, __s32 *numeric_value) { long long_value = 0; if (*param && *numeric) { /*check if 2 bytes & in[-99999,999999]*/ - *numeric = (val_len >= 2); - if ((val_len >= 2) && (val_len <= 6)) { + *numeric = (val_len >= 2) && (val_len <= 6); + if (*numeric) { if (kstrtol(section_eq + 1, 10, &long_value) != 0) { *numeric = false; @@ -39,7 +39,6 @@ static void check_param_range(char *section_eq, char **s, char ch, bool *param, *numeric = (*numeric_value >= -32768) && (*numeric_value <= 32767); } - **s = ch; } } } @@ -97,8 +96,9 @@ void encode_seemp_params(struct seemp_logk_blk *blk) ch = *s; *s = 0; - check_param_range(section_eq, &s, ch, ¶m, + check_param_range(section_eq, ¶m, &numeric, val_len, &numeric_value); + *s = ch; } } |
