xtables-addons: Fix Lua packet script implementation
lua_packet_segment parameter start has type char pointer; in function lua_tg it's assigned an uint16 value generating compiler warnings obviously indicating posssible seg fault problems. Fix the issue by using the correct skb functions so the parameter points to the position inside the sk_buff Signed-off-by: Hans Dedecker <dedeckeh@gmail.com> Signed-off-by: Stijn Cleynhens <stijn.cleynhens@gmail.com>
This commit is contained in:
		
				
					committed by
					
						
						Jo-Philipp Wich
					
				
			
			
				
	
			
			
			
						parent
						
							eb529d2625
						
					
				
				
					commit
					312cb987f9
				
			@@ -13,6 +13,21 @@
 | 
				
			|||||||
 {
 | 
					 {
 | 
				
			||||||
 	uint32_t  verdict;
 | 
					 	uint32_t  verdict;
 | 
				
			||||||
 	lua_packet_segment *p;
 | 
					 	lua_packet_segment *p;
 | 
				
			||||||
 | 
					@@ -88,11 +88,11 @@ lua_tg(struct sk_buff *pskb, const struc
 | 
				
			||||||
 | 
					 	/* push the lua_packet_segment as a parameter */
 | 
				
			||||||
 | 
					 	p = (lua_packet_segment *)lua_newuserdata(L, sizeof(lua_packet_segment));
 | 
				
			||||||
 | 
					 	if (pskb->mac_header)
 | 
				
			||||||
 | 
					-		p->start = pskb->mac_header;
 | 
				
			||||||
 | 
					+		p->start = skb_mac_header(pskb);
 | 
				
			||||||
 | 
					 	else if (pskb->network_header)
 | 
				
			||||||
 | 
					-		p->start = pskb->network_header;
 | 
				
			||||||
 | 
					+		p->start = skb_network_header(pskb);
 | 
				
			||||||
 | 
					 	else if (pskb->transport_header)
 | 
				
			||||||
 | 
					-		p->start = pskb->transport_header;
 | 
				
			||||||
 | 
					+		p->start = skb_transport_header(pskb);
 | 
				
			||||||
 | 
					 	p->offset = 0;
 | 
				
			||||||
 | 
					 	p->length = (unsigned long)pskb->tail - (unsigned long)p->start;
 | 
				
			||||||
 | 
					 	p->changes = NULL;
 | 
				
			||||||
@@ -208,16 +208,16 @@ static bool load_script_into_state(uint3
 | 
					@@ -208,16 +208,16 @@ static bool load_script_into_state(uint3
 | 
				
			||||||
  * some workqueue initialization. So far this is done each time this function
 | 
					  * some workqueue initialization. So far this is done each time this function
 | 
				
			||||||
  * is called, subject to change.
 | 
					  * is called, subject to change.
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user