From 61dd7d6f06e45a101a304bf4a11aab624e5d744c Mon Sep 17 00:00:00 2001 From: Noel Power Date: Fri, 3 May 2019 12:06:45 +0100 Subject: [PATCH] s3/registry: Fix incompatible func casts MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit [3425/3524] Compiling source3/registry/reg_parse.c ../../source3/registry/reg_parse.c: In function ‘reg_parse_new’: ../../source3/registry/reg_parse.c:223:12: error: cast between incompatible function types from ‘int (*)(void *)’ to ‘int (*)(void *, const char **, size_t, _Bool)’ {aka ‘int (*)(void *, const char **, long unsigned int, _Bool)’} [-Werror=cast-function-type] cb.key = (reg_parse_callback_key_t)&nop; ^ ../../source3/registry/reg_parse.c:226:12: error: cast between incompatible function types from ‘int (*)(void *)’ to ‘int (*)(void *, const char *, uint32_t, const uint8_t *, uint32_t)’ {aka ‘int (*)(void *, const char *, unsigned int, const unsigned char *, unsigned int)’} [-Werror=cast-function-type] cb.val = (reg_parse_callback_val_t)&nop; ^ ../../source3/registry/reg_parse.c:229:16: error: cast between incompatible function types from ‘int (*)(void *)’ to ‘int (*)(void *, const char *)’ [-Werror=cast-function-type] cb.val_del = (reg_parse_callback_val_del_t)&nop; ^ ../../source3/registry/reg_parse.c:232:16: error: cast between incompatible function types from ‘int (*)(void *)’ to ‘int (*)(void *, const char *)’ [-Werror=cast-function-type] cb.comment = (reg_parse_callback_comment_t)&nop; Signed-off-by: Noel Power Reviewed-by: Andreas Schneider Reviewed-by: Andrew Bartlett --- source3/registry/reg_parse.c | 27 ++++++++++++++++++++++----- 1 file changed, 22 insertions(+), 5 deletions(-) diff --git a/source3/registry/reg_parse.c b/source3/registry/reg_parse.c index c276c7e2d62..81815a4fd98 100644 --- a/source3/registry/reg_parse.c +++ b/source3/registry/reg_parse.c @@ -192,11 +192,27 @@ static bool act_comment (struct reg_parse* p, const char* txt) /**@}*/ -static int nop(void* data) +static int nop_callback_key(void* private_data, + const char* key[], + size_t klen, + bool del) { return 0; } +static int nop_callback_val(void* private_data, + const char* name, + uint32_t type, + const uint8_t* data, + size_t len) +{ + return 0; +} + +static int nop_callback_del(void* data, const char* str) +{ + return 0; +} struct reg_parse* reg_parse_new(const void* ctx, struct reg_parse_callback cb, @@ -220,16 +236,17 @@ struct reg_parse* reg_parse_new(const void* ctx, s->valtype = 0; if (cb.key == NULL) { - cb.key = (reg_parse_callback_key_t)&nop; + cb.key = (reg_parse_callback_key_t)&nop_callback_key; } if (cb.val == NULL) { - cb.val = (reg_parse_callback_val_t)&nop; + cb.val = (reg_parse_callback_val_t)&nop_callback_val; } if (cb.val_del == NULL) { - cb.val_del = (reg_parse_callback_val_del_t)&nop; + cb.val_del = (reg_parse_callback_val_del_t)&nop_callback_del; } if (cb.comment == NULL) { - cb.comment = (reg_parse_callback_comment_t)&nop; + cb.comment = + (reg_parse_callback_comment_t)&nop_callback_del; } s->call = cb; -- 2.47.3