diff --git a/library/bignum_core.c b/library/bignum_core.c
index ab7d8e1..ee71e3f 100644
--- a/library/bignum_core.c
+++ b/library/bignum_core.c
@@ -227,7 +227,7 @@
 
     /* Avoid calling `memcpy` with NULL source or destination argument,
      * even if buflen is 0. */
-    if( buflen != 0 )
+    if( buf != NULL )
     {
         Xp = (unsigned char*) X;
         memcpy( Xp + overhead, buf, buflen );
diff --git a/library/bignum_mod.c b/library/bignum_mod.c
index c424854..38aff9b 100644
--- a/library/bignum_mod.c
+++ b/library/bignum_mod.c
@@ -47,9 +47,6 @@
                                    mbedtls_mpi_uint *p,
                                    size_t pn )
 {
-    if( p == NULL || m == NULL || r == NULL )
-        return( MBEDTLS_ERR_MPI_BAD_INPUT_DATA );
-
     if( pn < m->n || !mbedtls_mpi_core_lt_ct( m->p, p, pn ) )
         return( MBEDTLS_ERR_MPI_BAD_INPUT_DATA );
 
@@ -112,9 +109,6 @@
 {
     int ret = 0;
 
-    if ( p == NULL || m == NULL )
-        return( MBEDTLS_ERR_MPI_BAD_INPUT_DATA );
-
     m->p = p;
     m->n = pn;
     m->plen = mbedtls_mpi_core_bitlen( p, pn );
diff --git a/library/bignum_mod.h b/library/bignum_mod.h
index 7950f09..ee9982a 100644
--- a/library/bignum_mod.h
+++ b/library/bignum_mod.h
@@ -78,9 +78,8 @@
  * \param pn    The number of limbs of \p p.
  *
  * \return      \c 0 if successful.
- * \return      #MBEDTLS_ERR_MPI_BAD_INPUT_DATA if \p r, \p m or \p p is #NULL
- *              pointer, \p pn is less than the limbs in \p m or if \p p is not
- *              less than \p m.
+ * \return      #MBEDTLS_ERR_MPI_BAD_INPUT_DATA if \p pn is less than the limbs
+ *              in \p m or if \p p is not less than \p m.
  */
 int mbedtls_mpi_mod_residue_setup( mbedtls_mpi_mod_residue *r,
                                    mbedtls_mpi_mod_modulus *m,
@@ -119,8 +118,8 @@
  *                  associated with \p m (see #mbedtls_mpi_mod_rep_selector).
  *
  * \return      \c 0 if successful.
- * \return      #MBEDTLS_ERR_MPI_BAD_INPUT_DATA if \p m or \p p is
- *              #NULL pointer or if \p ext_rep or \p int_rep is invalid.
+ * \return      #MBEDTLS_ERR_MPI_BAD_INPUT_DATA if \p ext_rep or \p int_rep is
+ *              invalid.
  */
 int mbedtls_mpi_mod_modulus_setup( mbedtls_mpi_mod_modulus *m,
                                    mbedtls_mpi_uint *p,
