From 1a138e9629a1c9ee3b8d09c5a49e165770b1d589 Mon Sep 17 00:00:00 2001 From: Muxi Yan <mxyan@google.com> Date: Sun, 30 Apr 2017 10:47:48 -0700 Subject: [PATCH] Asan bug fix --- .../workaround_cronet_compression_filter.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/src/core/ext/filters/workarounds/workaround_cronet_compression_filter.c b/src/core/ext/filters/workarounds/workaround_cronet_compression_filter.c index 2060009e5e..dda39a450b 100644 --- a/src/core/ext/filters/workarounds/workaround_cronet_compression_filter.c +++ b/src/core/ext/filters/workarounds/workaround_cronet_compression_filter.c @@ -161,13 +161,14 @@ static bool parse_user_agent(grpc_mdelem md) { char* user_agent_str = grpc_slice_to_c_string(GRPC_MDVALUE(md)); bool grpc_objc_specifier_seen = false; bool cronet_specifier_seen = false; - char *major_version = user_agent_str, *minor_version; + char *major_version_str = user_agent_str, *minor_version_str; + long major_version, minor_version; char* head = strtok(user_agent_str, " "); while (head != NULL) { if (!grpc_objc_specifier_seen && 0 == strncmp(head, grpc_objc_specifier, grpc_objc_specifier_len)) { - major_version = head + grpc_objc_specifier_len; + major_version_str = head + grpc_objc_specifier_len; grpc_objc_specifier_seen = true; } else if (grpc_objc_specifier_seen && 0 == strncmp(head, cronet_specifier, cronet_specifier_len)) { @@ -178,14 +179,16 @@ static bool parse_user_agent(grpc_mdelem md) { head = strtok(NULL, " "); } if (grpc_objc_specifier_seen) { - major_version = strtok(major_version, "."); - minor_version = strtok(NULL, "."); + major_version_str = strtok(major_version_str, "."); + minor_version_str = strtok(NULL, "."); + major_version = atol(major_version_str); + minor_version = atol(minor_version_str); } gpr_free(user_agent_str); return (grpc_objc_specifier_seen && cronet_specifier_seen && - (atol(major_version) < 1 || - (atol(major_version) == 1 && atol(minor_version) <= 3))); + (major_version < 1 || + (major_version == 1 && minor_version <= 3))); } const grpc_channel_filter grpc_workaround_cronet_compression_filter = { -- GitLab