| 
														
															@@ -280,7 +280,11 @@ static grpc_channel_credentials* read_ssl_channel_creds(input_stream* inp) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   return creds; 
														 | 
														
														 | 
														
															   return creds; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 } 
														 | 
														
														 | 
														
															 } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															-static grpc_call_credentials* read_call_creds(input_stream* inp) { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+static grpc_call_credentials* read_call_creds(input_stream* inp, int depth) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+  if (depth > 64) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    // prevent creating infinitely deep call creds 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    return nullptr; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+  } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   switch (next_byte(inp)) { 
														 | 
														
														 | 
														
															   switch (next_byte(inp)) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     default: 
														 | 
														
														 | 
														
															     default: 
														 | 
													
												
											
												
													
														| 
														 | 
														
															       end(inp); 
														 | 
														
														 | 
														
															       end(inp); 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -288,8 +292,8 @@ static grpc_call_credentials* read_call_creds(input_stream* inp) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     case 0: 
														 | 
														
														 | 
														
															     case 0: 
														 | 
													
												
											
												
													
														| 
														 | 
														
															       return nullptr; 
														 | 
														
														 | 
														
															       return nullptr; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     case 1: { 
														 | 
														
														 | 
														
															     case 1: { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-      grpc_call_credentials* c1 = read_call_creds(inp); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-      grpc_call_credentials* c2 = read_call_creds(inp); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+      grpc_call_credentials* c1 = read_call_creds(inp, depth + 1); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+      grpc_call_credentials* c2 = read_call_creds(inp, depth + 1); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															       if (c1 != nullptr && c2 != nullptr) { 
														 | 
														
														 | 
														
															       if (c1 != nullptr && c2 != nullptr) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         grpc_call_credentials* out = 
														 | 
														
														 | 
														
															         grpc_call_credentials* out = 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             grpc_composite_call_credentials_create(c1, c2, nullptr); 
														 | 
														
														 | 
														
															             grpc_composite_call_credentials_create(c1, c2, nullptr); 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -338,7 +342,7 @@ static grpc_channel_credentials* read_channel_creds(input_stream* inp) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															       break; 
														 | 
														
														 | 
														
															       break; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     case 1: { 
														 | 
														
														 | 
														
															     case 1: { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															       grpc_channel_credentials* c1 = read_channel_creds(inp); 
														 | 
														
														 | 
														
															       grpc_channel_credentials* c1 = read_channel_creds(inp); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-      grpc_call_credentials* c2 = read_call_creds(inp); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+      grpc_call_credentials* c2 = read_call_creds(inp, 0); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															       if (c1 != nullptr && c2 != nullptr) { 
														 | 
														
														 | 
														
															       if (c1 != nullptr && c2 != nullptr) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         grpc_channel_credentials* out = 
														 | 
														
														 | 
														
															         grpc_channel_credentials* out = 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             grpc_composite_channel_credentials_create(c1, c2, nullptr); 
														 | 
														
														 | 
														
															             grpc_composite_channel_credentials_create(c1, c2, nullptr); 
														 |