PR: 2340
[oweals/openssl.git] / crypto / comp / c_rle.c
index b8b9b3e1bc2ee19f1dee44864994d148906e22cf..18bceae51e76f33edfc18e90cfe0e3c68e06e51a 100644 (file)
@@ -1,8 +1,8 @@
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
-#include "objects.h"
-#include "comp.h"
+#include <openssl/objects.h>
+#include <openssl/comp.h>
 
 static int rle_compress_block(COMP_CTX *ctx, unsigned char *out,
        unsigned int olen, unsigned char *in, unsigned int ilen);
@@ -17,19 +17,16 @@ static COMP_METHOD rle_method={
        rle_compress_block,
        rle_expand_block,
        NULL,
+       NULL,
        };
 
-COMP_METHOD *COMP_rle()
+COMP_METHOD *COMP_rle(void)
        {
        return(&rle_method);
        }
 
-static int rle_compress_block(ctx,out,olen,in,ilen)
-COMP_CTX *ctx;
-unsigned char *out;
-unsigned int olen;
-unsigned char *in;
-unsigned int ilen;
+static int rle_compress_block(COMP_CTX *ctx, unsigned char *out,
+            unsigned int olen, unsigned char *in, unsigned int ilen)
        {
        /* int i; */
 
@@ -44,16 +41,12 @@ unsigned int ilen;
        return(ilen+1);
        }
 
-static int rle_expand_block(ctx,out,olen,in,ilen)
-COMP_CTX *ctx;
-unsigned char *out;
-unsigned int olen;
-unsigned char *in;
-unsigned int ilen;
+static int rle_expand_block(COMP_CTX *ctx, unsigned char *out,
+            unsigned int olen, unsigned char *in, unsigned int ilen)
        {
        int i;
 
-       if (olen < (ilen-1))
+       if (ilen == 0 || olen < (ilen-1))
                {
                /* ZZZZZZZZZZZZZZZZZZZZZZ */
                return(-1);
@@ -66,4 +59,3 @@ unsigned int ilen;
                }
        return(ilen-1);
        }
-