Make sure to NUL-terminate the string on end-of-file (and error)
[openssl.git] / crypto / bio / bf_nbio.c
index 9b4bcb19d43792e04a1be8bb8b2bf7931c14c791..c72a23c2e1b289417543fb372f90a5a3a86115e8 100644 (file)
@@ -61,7 +61,6 @@
 #include "cryptlib.h"
 #include <openssl/rand.h>
 #include <openssl/bio.h>
-#include <openssl/evp.h>
 
 /* BIO_put and BIO_get both add to the digest,
  * BIO_gets returns the digest */
@@ -73,7 +72,7 @@ static int nbiof_gets(BIO *h,char *str,int size);
 static long nbiof_ctrl(BIO *h,int cmd,long arg1,void *arg2);
 static int nbiof_new(BIO *h);
 static int nbiof_free(BIO *data);
-static long nbiof_callback_ctrl(BIO *h,int cmd,void (*fp)());
+static long nbiof_callback_ctrl(BIO *h,int cmd,bio_info_cb *fp);
 typedef struct nbio_test_st
        {
        /* only set if we sent a 'should retry' error */
@@ -104,7 +103,7 @@ static int nbiof_new(BIO *bi)
        {
        NBIO_TEST *nt;
 
-       nt=(NBIO_TEST *)Malloc(sizeof(NBIO_TEST));
+       if (!(nt=(NBIO_TEST *)OPENSSL_malloc(sizeof(NBIO_TEST)))) return(0);
        nt->lrn= -1;
        nt->lwn= -1;
        bi->ptr=(char *)nt;
@@ -117,7 +116,7 @@ static int nbiof_free(BIO *a)
        {
        if (a == NULL) return(0);
        if (a->ptr != NULL)
-               Free(a->ptr);
+               OPENSSL_free(a->ptr);
        a->ptr=NULL;
        a->init=0;
        a->flags=0;
@@ -128,7 +127,7 @@ static int nbiof_read(BIO *b, char *out, int outl)
        {
        NBIO_TEST *nt;
        int ret=0;
-#if 0
+#if 1
        int num;
        unsigned char n;
 #endif
@@ -138,7 +137,7 @@ static int nbiof_read(BIO *b, char *out, int outl)
        nt=(NBIO_TEST *)b->ptr;
 
        BIO_clear_retry_flags(b);
-#if 0
+#if 1
        RAND_pseudo_bytes(&n,1);
        num=(n&0x07);
 
@@ -226,7 +225,7 @@ static long nbiof_ctrl(BIO *b, int cmd, long num, void *ptr)
        return(ret);
        }
 
-static long nbiof_callback_ctrl(BIO *b, int cmd, void (*fp)())
+static long nbiof_callback_ctrl(BIO *b, int cmd, bio_info_cb *fp)
        {
        long ret=1;