diff options
| author | Marcus Brinkmann <[email protected]> | 2017-08-15 23:50:00 +0000 | 
|---|---|---|
| committer | Marcus Brinkmann <[email protected]> | 2017-08-15 23:50:00 +0000 | 
| commit | 3244d4daff892d5d3c39e78f4eb0934379beda2c (patch) | |
| tree | 4dd1bc014c39de1ca0a010319ef0948841dac5e6 | |
| parent | gpgconf: Fix symbol export. (diff) | |
| download | gpgme-3244d4daff892d5d3c39e78f4eb0934379beda2c.tar.gz gpgme-3244d4daff892d5d3c39e78f4eb0934379beda2c.zip | |
gpgconf: Fix some warnings.
* tests/gpg/t-gpgconf.c (main): Fix warnings.
* src/engine-gpgconf.c (struct gpgconf_config_dir_s): New struct.
(gpgconf_config_dir_cb, gpgconf_conf_dir) Use it to fix warning.
Signed-off-by: Marcus Brinkmann <[email protected]>
Diffstat (limited to '')
| -rw-r--r-- | src/engine-gpgconf.c | 24 | ||||
| -rw-r--r-- | tests/gpg/t-gpgconf.c | 31 | 
2 files changed, 32 insertions, 23 deletions
| diff --git a/src/engine-gpgconf.c b/src/engine-gpgconf.c index 2b0f448a..84d8df7b 100644 --- a/src/engine-gpgconf.c +++ b/src/engine-gpgconf.c @@ -986,20 +986,25 @@ gpgconf_conf_save (void *engine, gpgme_conf_comp_t comp)  } +struct gpgconf_config_dir_s +{ +  const char *what; +  char *result; +}; +  static gpgme_error_t  gpgconf_config_dir_cb (void *hook, char *line)  {    /* This is an input- and output-parameter.  */ -  char **str_p = (char **) hook; -  char *what = *str_p; -  int len = strlen(what); +  struct gpgconf_config_dir_s *data = (char **) hook; +  int len = strlen(data->what); -  if (!strncmp(line, what, len) && line[len] == ':') +  if (!strncmp(line, data->what, len) && line[len] == ':')      {        char *result = strdup(&line[len + 1]);        if (!result)  	return gpg_error_from_syserror (); -      *str_p = result; +      data->result = result;        return gpg_error(GPG_ERR_USER_1);      }    return 0; @@ -1010,15 +1015,16 @@ static gpgme_error_t  gpgconf_conf_dir (void *engine, const char *what, char **result)  {    gpgme_error_t err; -  char *res = what; +  struct gpgconf_config_dir_s data; -  *result = NULL; +  data.what = what; +  data.result = NULL;    err = gpgconf_read (engine, "--list-dirs", NULL, -		      gpgconf_config_dir_cb, &res); +		      gpgconf_config_dir_cb, &data);    if (gpg_err_code (err) == GPG_ERR_USER_1)      {        /* This signals to use that a result was found.  */ -      *result = res; +      *result = data.result;        return 0;      } diff --git a/tests/gpg/t-gpgconf.c b/tests/gpg/t-gpgconf.c index 8c81de69..5eccedeb 100644 --- a/tests/gpg/t-gpgconf.c +++ b/tests/gpg/t-gpgconf.c @@ -263,22 +263,25 @@ main (void)    err = gpgme_new (&ctx);    fail_if_err (err); -  /* Let's check getting the agent-socket directory for different homedirs.  */ -  char *result1 = NULL; -  err = gpgme_ctx_set_engine_info (ctx, GPGME_PROTOCOL_GPGCONF, NULL, "/tmp/foo"); -  fail_if_err (err); -  err = gpgme_op_conf_dir (ctx, "agent-socket", &result1); -  fail_if_err (err); - -  char *result2 = NULL; -  err = gpgme_ctx_set_engine_info (ctx, GPGME_PROTOCOL_GPGCONF, NULL, NULL); -  fail_if_err (err); -  err = gpgme_op_conf_dir (ctx, "agent-socket", &result2); -  fail_if_err (err); +  { +    /* Let's check getting the agent-socket directory for different homedirs.  */ +    char *result1 = NULL; +    char *result2 = NULL; +    err = gpgme_ctx_set_engine_info (ctx, GPGME_PROTOCOL_GPGCONF, NULL, "/tmp/foo"); +    fail_if_err (err); +    err = gpgme_op_conf_dir (ctx, "agent-socket", &result1); +    fail_if_err (err); -  /* They have to be different.  */ -  test (strcmp(result1, result2)); +    err = gpgme_ctx_set_engine_info (ctx, GPGME_PROTOCOL_GPGCONF, NULL, NULL); +    fail_if_err (err); +    err = gpgme_op_conf_dir (ctx, "agent-socket", &result2); +    fail_if_err (err); +    /* They have to be different.  */ +    test (strcmp(result1, result2)); +    gpgme_free (result1); +    gpgme_free (result2); +  }    err = gpgme_op_conf_load (ctx, &conf);    fail_if_err (err); | 
