Page Menu
Home
GnuPG
Search
Configure Global Search
Log In
Files
F23020698
D241.id1069.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Size
1 KB
Subscribers
None
D241.id1069.diff
View Options
Index: b/cipher/primegen.c
===================================================================
--- b/cipher/primegen.c
+++ b/cipher/primegen.c
@@ -639,14 +639,15 @@
if (g)
{
/* Create a generator (start with 3). */
- gcry_mpi_t tmp = mpi_alloc (mpi_get_nlimbs (prime));
- gcry_mpi_t b = mpi_alloc (mpi_get_nlimbs (prime));
- gcry_mpi_t pmin1 = mpi_alloc (mpi_get_nlimbs (prime));
if (need_q_factor)
err = GPG_ERR_NOT_IMPLEMENTED;
else
{
+ gcry_mpi_t tmp = mpi_alloc (mpi_get_nlimbs (prime));
+ gcry_mpi_t b = mpi_alloc (mpi_get_nlimbs (prime));
+ gcry_mpi_t pmin1 = mpi_alloc (mpi_get_nlimbs (prime));
+
factors[n] = q;
factors[n + 1] = mpi_alloc_set_ui (2);
mpi_sub_ui (pmin1, prime, 1);
@@ -1208,17 +1209,25 @@
gcry_mpi_t b = mpi_new (0);
gcry_mpi_t pmin1 = mpi_new (0);
gcry_mpi_t g = start_g? mpi_copy (start_g) : mpi_set_ui (NULL, 3);
+ gcry_err_code_t err = 0;
int first = 1;
int i, n;
if (!factors || !r_g || !prime)
- return GPG_ERR_INV_ARG;
+ {
+ err= GPG_ERR_INV_ARG;
+ goto leave;
+ }
+
*r_g = NULL;
for (n=0; factors[n]; n++)
;
if (n < 2)
- return GPG_ERR_INV_ARG;
+ {
+ err= GPG_ERR_INV_ARG;
+ goto leave;
+ }
/* Extra sanity check - usually disabled. */
/* mpi_set (tmp, factors[0]); */
@@ -1253,9 +1262,18 @@
}
while (i < n);
+leave:
_gcry_mpi_release (tmp);
_gcry_mpi_release (b);
_gcry_mpi_release (pmin1);
+
+ if (err)
+ {
+ _gcry_mpi_release (g);
+ return err;
+
+ }
+
*r_g = g;
return 0;
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Sun, May 11, 6:34 PM (11 h, 27 m)
Storage Engine
local-disk
Storage Format
Raw Data
Storage Handle
df/a4/f0820f3bdb134c9458be02147540
Attached To
D241: 478_primegen.patch
Event Timeline
Log In to Comment