aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/ext/filters/workarounds
diff options
context:
space:
mode:
authorGravatar Muxi Yan <mxyan@google.com>2017-04-30 10:47:48 -0700
committerGravatar Muxi Yan <mxyan@google.com>2017-04-30 10:52:03 -0700
commit1a138e9629a1c9ee3b8d09c5a49e165770b1d589 (patch)
tree2fd31b7e5550bab3c785a2024c4baeedf41af61b /src/core/ext/filters/workarounds
parent5109b38d4b9f5471febb89b0811e096823b2f4c7 (diff)
Asan bug fix
Diffstat (limited to 'src/core/ext/filters/workarounds')
-rw-r--r--src/core/ext/filters/workarounds/workaround_cronet_compression_filter.c15
1 files 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 = {