Re: xtables-addons 64-bit counter patch

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Re-sent, as the original may have been overlooked.

Neal

On Mon, 19 Oct 2015 01:34:54 -0400
"Neal P. Murphy" <neal.p.murphy@xxxxxxxxxxxx> wrote:

> On Sat, 6 Jun 2015 13:15:38 +0200 (CEST)
> Jan Engelhardt <jengelh@xxxxxxx> wrote:
> 
> > x
> > On Friday 2015-06-05 00:04, Neal P. Murphy wrote:
> > >The theory:
> > >  - Use two kernel pages for the counters for each group of 256
> > >    addresses.
> > >  - Change counters to 64-bit.
> > >  - Change to __get_free_pages/free_pages, using order=2 (two
> > >    consecutive pages), and zero both pages.
> > >  - Change "%u" to "%llu" as needed.
> > >  - Everything else pretty much stays the same.
> > >
> > >I also changed tmpbuf to two pages (Justin Case's idea), but I
> > >don't know if that's really necessary.
> > >
> > >Did I miss anything?
> > 
> > I applied it.
> 
> Disembowel me with a wooden spoon. My first patch makes xt_ACCOUNT hiss. Well, I think that's what a memory leak sounds like.
> 
> Below is the patch with the *rest* of the free_page(X) calls changed to free_pages(X, 2). xt_ACCOUNT should always allocate memory in page pairs. And always *free* memory in page pairs.
> 
> Neal
> 
> --------
diff -Nubr xtables-addons-1.45-P1/extensions/ACCOUNT/xt_ACCOUNT.c xtables-addons-1.45/extensions/ACCOUNT/xt_ACCOUNT.c
--- xtables-addons-1.45-P1/extensions/ACCOUNT/xt_ACCOUNT.c	2015-10-19 01:23:03.000000000 -0400
+++ xtables-addons-1.45/extensions/ACCOUNT/xt_ACCOUNT.c	2015-10-19 01:23:39.000000000 -0400
@@ -145,7 +145,7 @@
 		unsigned int b;
 		for (b = 0; b <= 255; b++) {
 			if (mask_16->mask_24[b]) {
-				free_page((unsigned long)mask_16->mask_24[b]);
+				free_pages((unsigned long)mask_16->mask_24[b], 2);
 			}
 		}
 		free_pages((unsigned long)data, 2);
@@ -162,10 +162,10 @@
 
 				for (b = 0; b <= 255; b++) {
 					if (mask_16->mask_24[b]) {
-						free_page((unsigned long)mask_16->mask_24[b]);
+						free_pages((unsigned long)mask_16->mask_24[b], 2);
 					}
 				}
-				free_page((unsigned long)mask_16);
+				free_pages((unsigned long)mask_16, 2);
 			}
 		}
 		free_pages((unsigned long)data, 2);

--
To unsubscribe from this list: send the line "unsubscribe netfilter-devel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Netfitler Users]     [LARTC]     [Bugtraq]     [Yosemite Forum]

  Powered by Linux