]> git.ipfire.org Git - thirdparty/nettle.git/commitdiff
Fix at-exit leak in eratosthenes program.
authorNiels Möller <nisse@lysator.liu.se>
Thu, 12 Jul 2018 20:37:36 +0000 (22:37 +0200)
committerNiels Möller <nisse@lysator.liu.se>
Thu, 12 Jul 2018 20:37:36 +0000 (22:37 +0200)
ChangeLog
examples/eratosthenes.c

index ccf82494193107e83b6b9ec8d71853fd04433a28..0dbacaa0b5bf0d66c5b0e3c517a908dbe65e533e 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
 2018-07-12  Niels Möller  <nisse@lysator.liu.se>
 
+       * examples/eratosthenes.c (main): Don't allocate bitmap storage
+       for limit == 2 (early exit), closing memory leak at exit.
+
        * eccdata.c (output_curve): Replace mpz_init_set_ui by mpz_set_ui,
        to fix memory leak.
        (ecc_curve_clear): New function.
index 7a54561dc297ab9b6fcdd76e502cd385c6c13d50..415c6d2595ea7b8adf47dade01c1e9e5b630cb79 100644 (file)
@@ -314,8 +314,6 @@ main (int argc, char **argv)
   root = (root - 1) | 1;
   /* Represents odd numbers from 3 up. */
   sieve_nbits = (root - 1) / 2;
-  sieve = vector_alloc(sieve_nbits );
-  vector_init(sieve, sieve_nbits);
 
   if (verbose)
     fprintf(stderr, "Initial sieve using %lu bits.\n", sieve_nbits);
@@ -326,6 +324,9 @@ main (int argc, char **argv)
   if (limit == 2)
     return EXIT_SUCCESS;
 
+  sieve = vector_alloc(sieve_nbits);
+  vector_init(sieve, sieve_nbits);
+
   for (bit = 0;
        bit < sieve_nbits;
        bit = vector_find_next(sieve, bit + 1, sieve_nbits))