]> git.ipfire.org Git - thirdparty/lxc.git/commitdiff
utils: Fix wrong integer of a function parameter.
authorJulio Faracco <jcfaracco@gmail.com>
Sat, 3 Aug 2019 05:16:13 +0000 (02:16 -0300)
committerChristian Brauner <christian.brauner@ubuntu.com>
Sun, 11 Aug 2019 19:42:37 +0000 (21:42 +0200)
If SSL is enabled, utils will include function `do_sha1_hash()` to
generate a sha1 encrypted buffer. Last function argument of
`EVP_DigestFinal_ex()` requires a `unsigned int` but the current
parameter is an `integer` type.

See error:
utils.c:350:38: error: passing 'int *' to parameter of type 'unsigned int *' converts between pointers to integer types with different sign
      [-Werror,-Wpointer-sign]
        EVP_DigestFinal_ex(mdctx, md_value, md_len);
                                            ^~~~~~
/usr/include/openssl/evp.h:549:49: note: passing argument to parameter 's' here
                                  unsigned int *s);

Signed-off-by: Julio Faracco <jcfaracco@gmail.com>
src/lxc/lxccontainer.c
src/lxc/utils.c
src/lxc/utils.h

index 519226daa6fa2f4eebb41e30104da0c710ddfda3..bf931eedaa89b3098e64c86e7de2cb626d925b87 100644 (file)
@@ -1638,7 +1638,8 @@ static bool prepend_lxc_header(char *path, const char *t, char *const argv[])
        FILE *f;
        int ret = -1;
 #if HAVE_OPENSSL
-       int i, md_len = 0;
+       int i;
+       unsigned int md_len = 0;
        unsigned char md_value[EVP_MAX_MD_SIZE];
        char *tpath;
 #endif
index 63c0b7a043521109a36d39c1c4cfa723630939d3..7cb15452c562c7e2ab808b74a4c6d2a2dc01544a 100644 (file)
@@ -333,7 +333,7 @@ again:
 #ifdef HAVE_OPENSSL
 #include <openssl/evp.h>
 
-static int do_sha1_hash(const char *buf, int buflen, unsigned char *md_value, int *md_len)
+static int do_sha1_hash(const char *buf, int buflen, unsigned char *md_value, unsigned int *md_len)
 {
        EVP_MD_CTX *mdctx;
        const EVP_MD *md;
@@ -353,7 +353,7 @@ static int do_sha1_hash(const char *buf, int buflen, unsigned char *md_value, in
        return 0;
 }
 
-int sha1sum_file(char *fnam, unsigned char *digest, int *md_len)
+int sha1sum_file(char *fnam, unsigned char *digest, unsigned int *md_len)
 {
        char *buf;
        int ret;
index 268cff011c1ad1d7a7bae3f604fcf778b1c24ba8..43daf30b41ddf69bf7f8a790b69b779ff103ad15 100644 (file)
@@ -99,7 +99,7 @@ extern int wait_for_pid(pid_t pid);
 extern int lxc_wait_for_pid_status(pid_t pid);
 
 #if HAVE_OPENSSL
-extern int sha1sum_file(char *fnam, unsigned char *md_value, int *md_len);
+extern int sha1sum_file(char *fnam, unsigned char *md_value, unsigned int *md_len);
 #endif
 
 /* initialize rand with urandom */