Cleanup local_address in protocol_edge.c
In line 131 local_address has been defined, but the memory was never freed on return.
This commit is contained in:
		
							parent
							
								
									d08c7cf4cf
								
							
						
					
					
						commit
						e3ae318059
					
				
					 1 changed files with 7 additions and 1 deletions
				
			
		| 
						 | 
				
			
			@ -140,6 +140,7 @@ bool add_edge_h(connection_t *c, const char *request) {
 | 
			
		|||
				logger(DEBUG_PROTOCOL, LOG_WARNING, "Got %s from %s (%s) for ourself which does not match existing entry",
 | 
			
		||||
						   "ADD_EDGE", c->name, c->hostname);
 | 
			
		||||
				send_add_edge(c, e);
 | 
			
		||||
				sockaddrfree(&local_address);
 | 
			
		||||
				return true;
 | 
			
		||||
			} else {
 | 
			
		||||
				logger(DEBUG_PROTOCOL, LOG_WARNING, "Got %s from %s (%s) which does not match existing entry",
 | 
			
		||||
| 
						 | 
				
			
			@ -154,9 +155,11 @@ bool add_edge_h(connection_t *c, const char *request) {
 | 
			
		|||
					logger(DEBUG_PROTOCOL, LOG_WARNING, "Got %s from %s (%s) for ourself which does not match existing entry",
 | 
			
		||||
							   "ADD_EDGE", c->name, c->hostname);
 | 
			
		||||
					send_add_edge(c, e);
 | 
			
		||||
					sockaddrfree(&local_address);
 | 
			
		||||
					return true;
 | 
			
		||||
				}
 | 
			
		||||
				// Otherwise, just ignore it.
 | 
			
		||||
				sockaddrfree(&local_address);
 | 
			
		||||
				return true;
 | 
			
		||||
			} else if(local_address.sa.sa_family) {
 | 
			
		||||
				// We learned a new local address for this edge.
 | 
			
		||||
| 
						 | 
				
			
			@ -169,8 +172,10 @@ bool add_edge_h(connection_t *c, const char *request) {
 | 
			
		|||
 | 
			
		||||
				return true;
 | 
			
		||||
			}
 | 
			
		||||
		} else
 | 
			
		||||
		} else {
 | 
			
		||||
			sockaddrfree(&local_address);
 | 
			
		||||
			return true;
 | 
			
		||||
		}
 | 
			
		||||
	} else if(from == myself) {
 | 
			
		||||
		logger(DEBUG_PROTOCOL, LOG_WARNING, "Got %s from %s (%s) for ourself which does not exist",
 | 
			
		||||
				   "ADD_EDGE", c->name, c->hostname);
 | 
			
		||||
| 
						 | 
				
			
			@ -180,6 +185,7 @@ bool add_edge_h(connection_t *c, const char *request) {
 | 
			
		|||
		e->to = to;
 | 
			
		||||
		send_del_edge(c, e);
 | 
			
		||||
		free_edge(e);
 | 
			
		||||
		sockaddrfree(&local_address);
 | 
			
		||||
		return true;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue