* mpicoder.c (gcry_mpi_print): Fixed testing against possible
authorWerner Koch <wk@gnupg.org>
Wed, 2 Apr 2003 08:40:21 +0000 (08:40 +0000)
committerWerner Koch <wk@gnupg.org>
Wed, 2 Apr 2003 08:40:21 +0000 (08:40 +0000)
uninitialized LEN.  Valgrinded by Nikos Mavroyanopoulos.

mpi/ChangeLog
mpi/mpicoder.c

index 724e538..0d0c7dd 100644 (file)
@@ -1,3 +1,8 @@
+2003-04-02  Werner Koch  <wk@gnupg.org>
+
+       * mpicoder.c (gcry_mpi_print): Fixed testing against possible
+       uninitialized LEN.  Valgrinded by Nikos Mavroyanopoulos.
+
 2003-01-15  Werner Koch  <wk@gnupg.org>
 
        * longlong.h: Removed some spaces between backslashes and newlines.
index 3051b41..7e2c9f2 100644 (file)
@@ -479,7 +479,7 @@ gcry_mpi_print( enum gcry_mpi_format format, char *buffer, size_t *nbytes,
            extra=1;
        }
 
-       if( n > len && buffer ) {
+       if (buffer && n > len) {
            gcry_free(tmp);
            return GCRYERR_TOO_SHORT;  /* the provided buffer is too short */
        }
@@ -500,7 +500,7 @@ gcry_mpi_print( enum gcry_mpi_format format, char *buffer, size_t *nbytes,
        /* we ignore the sign for this format */
        /* FIXME: for performance reasons we should put this into
         * mpi_aprint becuase we can then use the buffer directly */
-       if( n > len && buffer )
+       if (buffer && n > len)
            return GCRYERR_TOO_SHORT;  /* the provided buffer is too short */
        if( buffer ) {
            char *tmp;
@@ -517,7 +517,7 @@ gcry_mpi_print( enum gcry_mpi_format format, char *buffer, size_t *nbytes,
        if( a->sign )
            return GCRYERR_INV_ARG; /* pgp format can only handle unsigned */
 
-       if( n+2 > len && buffer )
+       if (buffer && n+2 > len)
            return GCRYERR_TOO_SHORT;  /* the provided buffer is too short */
        if( buffer ) {
            char *tmp;
@@ -546,7 +546,7 @@ gcry_mpi_print( enum gcry_mpi_format format, char *buffer, size_t *nbytes,
            extra=1;
        }
 
-       if( n+4 > len && buffer ) {
+       if (buffer && n+4 > len) {
            gcry_free(tmp);
            return GCRYERR_TOO_SHORT;  /* the provided buffer is too short */
        }
@@ -575,7 +575,7 @@ gcry_mpi_print( enum gcry_mpi_format format, char *buffer, size_t *nbytes,
        if( !n || (*tmp & 0x80) )
            extra=2;
 
-       if( 2*n + extra + !!a->sign + 1 > len && buffer ) {
+       if(buffer && 2*n + extra + !!a->sign + 1 > len) {
            gcry_free(tmp);
            return GCRYERR_TOO_SHORT;  /* the provided buffer is too short */
        }