Skip to content
Snippets Groups Projects
Commit 1a138e96 authored by Muxi Yan's avatar Muxi Yan
Browse files

Asan bug fix

parent 5109b38d
No related branches found
No related tags found
Loading
...@@ -161,13 +161,14 @@ static bool parse_user_agent(grpc_mdelem md) { ...@@ -161,13 +161,14 @@ static bool parse_user_agent(grpc_mdelem md) {
char* user_agent_str = grpc_slice_to_c_string(GRPC_MDVALUE(md)); char* user_agent_str = grpc_slice_to_c_string(GRPC_MDVALUE(md));
bool grpc_objc_specifier_seen = false; bool grpc_objc_specifier_seen = false;
bool cronet_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, " "); char* head = strtok(user_agent_str, " ");
while (head != NULL) { while (head != NULL) {
if (!grpc_objc_specifier_seen && if (!grpc_objc_specifier_seen &&
0 == strncmp(head, grpc_objc_specifier, grpc_objc_specifier_len)) { 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; grpc_objc_specifier_seen = true;
} else if (grpc_objc_specifier_seen && } else if (grpc_objc_specifier_seen &&
0 == strncmp(head, cronet_specifier, cronet_specifier_len)) { 0 == strncmp(head, cronet_specifier, cronet_specifier_len)) {
...@@ -178,14 +179,16 @@ static bool parse_user_agent(grpc_mdelem md) { ...@@ -178,14 +179,16 @@ static bool parse_user_agent(grpc_mdelem md) {
head = strtok(NULL, " "); head = strtok(NULL, " ");
} }
if (grpc_objc_specifier_seen) { if (grpc_objc_specifier_seen) {
major_version = strtok(major_version, "."); major_version_str = strtok(major_version_str, ".");
minor_version = strtok(NULL, "."); minor_version_str = strtok(NULL, ".");
major_version = atol(major_version_str);
minor_version = atol(minor_version_str);
} }
gpr_free(user_agent_str); gpr_free(user_agent_str);
return (grpc_objc_specifier_seen && cronet_specifier_seen && return (grpc_objc_specifier_seen && cronet_specifier_seen &&
(atol(major_version) < 1 || (major_version < 1 ||
(atol(major_version) == 1 && atol(minor_version) <= 3))); (major_version == 1 && minor_version <= 3)));
} }
const grpc_channel_filter grpc_workaround_cronet_compression_filter = { const grpc_channel_filter grpc_workaround_cronet_compression_filter = {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment