1
0
mirror of git://git.gnupg.org/gnupg.git synced 2024-12-22 10:19:57 +01:00

common,agent,dirmngr,g10,tools: Fix split_fields API.

* common/stringhelp.h (split_fields): Use const * for the strings in
the ARRAY.
(split_fields_colon): Likewise.
* common/stringhelp.c (split_fields, split_fields_colon): Fix
the implementation.
* agent/call-scd.c, agent/command.c: Follow the change.
* common/t-stringhelp.c, dirmngr/loadswdb.c: Likewise.
* g10/call-agent.c, tools/card-call-scd.c: Likewise.
* tools/card-yubikey.c, tools/gpg-card.c: Likewise.
* tools/gpg-card.h, tools/gpg-wks-client.c: Likewise.
* tools/gpgconf-comp.c, tools/gpgconf.c: Likewise.
* tools/wks-util.c: Likewise.

--

The strings in the ARRAY don't need to be released by caller, as those
are references.  It's easier to follow the code when it's explicitly
const *.

Signed-off-by: NIIBE Yutaka <gniibe@fsij.org>
This commit is contained in:
NIIBE Yutaka 2020-09-18 10:20:23 +09:00
parent 8ff3663027
commit dfdcf14738
15 changed files with 33 additions and 31 deletions

View File

@ -682,7 +682,7 @@ readkey_status_cb (void *opaque, const char *line)
* Here we only need the keyref. We use only the first received * Here we only need the keyref. We use only the first received
* KEYPAIRINFO; it is possible to receive several if there are * KEYPAIRINFO; it is possible to receive several if there are
* two or more active cards with the same key. */ * two or more active cards with the same key. */
char *fields[2]; const char *fields[2];
int nfields; int nfields;
line_buffer = xtrystrdup (line); line_buffer = xtrystrdup (line);

View File

@ -2804,7 +2804,7 @@ cmd_keytocard (assuan_context_t ctx, char *line)
ctrl_t ctrl = assuan_get_pointer (ctx); ctrl_t ctrl = assuan_get_pointer (ctx);
int force; int force;
gpg_error_t err = 0; gpg_error_t err = 0;
char *argv[5]; const char *argv[5];
int argc; int argc;
unsigned char grip[20]; unsigned char grip[20];
const char *serialno, *timestamp_str, *keyref; const char *serialno, *timestamp_str, *keyref;
@ -3501,7 +3501,7 @@ cmd_getinfo (assuan_context_t ctx, char *line)
{ {
#if GCRYPT_VERSION_NUMBER >= 0x010800 #if GCRYPT_VERSION_NUMBER >= 0x010800
char *buf; char *buf;
char *fields[5]; const char *fields[5];
buf = gcry_get_config (0, "rng-type"); buf = gcry_get_config (0, "rng-type");
if (buf if (buf

View File

@ -1363,10 +1363,11 @@ strtokenize (const char *string, const char *delim)
* foo (fields[1]); * foo (fields[1]);
*/ */
int int
split_fields (char *string, char **array, int arraysize) split_fields (char *string, const char **array, int arraysize)
{ {
int n = 0; int n = 0;
char *p, *pend; const char *p;
char *pend;
for (p = string; *p == ' '; p++) for (p = string; *p == ' '; p++)
; ;
@ -1401,10 +1402,11 @@ split_fields (char *string, char **array, int arraysize)
* foo (fields[1]); * foo (fields[1]);
*/ */
int int
split_fields_colon (char *string, char **array, int arraysize) split_fields_colon (char *string, const char **array, int arraysize)
{ {
int n = 0; int n = 0;
char *p, *pend; const char *p;
char *pend;
p = string; p = string;
do do

View File

@ -151,11 +151,11 @@ char **strtokenize (const char *string, const char *delim);
/* Split STRING into space delimited fields and store them in the /* Split STRING into space delimited fields and store them in the
* provided ARRAY. */ * provided ARRAY. */
int split_fields (char *string, char **array, int arraysize); int split_fields (char *string, const char **array, int arraysize);
/* Split STRING into colon delimited fields and store them in the /* Split STRING into colon delimited fields and store them in the
* provided ARRAY. */ * provided ARRAY. */
int split_fields_colon (char *string, char **array, int arraysize); int split_fields_colon (char *string, const char **array, int arraysize);
/* Return True if MYVERSION is greater or equal than REQ_VERSION. */ /* Return True if MYVERSION is greater or equal than REQ_VERSION. */
int compare_version_strings (const char *my_version, const char *req_version); int compare_version_strings (const char *my_version, const char *req_version);

View File

@ -717,7 +717,7 @@ test_split_fields (void)
}; };
int tidx; int tidx;
char *fields[10]; const char *fields[10];
int field_count_expected, nfields, field_count, i; int field_count_expected, nfields, field_count, i;
char *s2; char *s2;
@ -792,7 +792,7 @@ test_split_fields_colon (void)
}; };
int tidx; int tidx;
char *fields[10]; const char *fields[10];
int field_count_expected, nfields, field_count, i; int field_count_expected, nfields, field_count, i;
char *s2; char *s2;

View File

@ -43,7 +43,7 @@ time_of_saved_swdb (const char *fname, time_t *r_filedate, time_t *r_verified)
size_t length_of_line = 0; size_t length_of_line = 0;
size_t maxlen; size_t maxlen;
ssize_t len; ssize_t len;
char *fields[2]; const char *fields[2];
gnupg_isotime_t isot; gnupg_isotime_t isot;
time_t filedate = (time_t)(-1); time_t filedate = (time_t)(-1);
time_t verified = (time_t)(-1); time_t verified = (time_t)(-1);
@ -198,7 +198,7 @@ verify_status_cb (void *opaque, const char *keyword, char *args)
/* We care only about the first valid signature. */ /* We care only about the first valid signature. */
if (!strcmp (keyword, "VALIDSIG") && !parm->anyvalid) if (!strcmp (keyword, "VALIDSIG") && !parm->anyvalid)
{ {
char *fields[3]; const char *fields[3];
parm->anyvalid = 1; parm->anyvalid = 1;
if (split_fields (args, fields, DIM (fields)) >= 3) if (split_fields (args, fields, DIM (fields)) >= 3)

View File

@ -842,7 +842,7 @@ scd_keypairinfo_status_cb (void *opaque, const char *line)
/* The format of such a line is: /* The format of such a line is:
* KEYPAIRINFO <hexgrip> <keyref> [usage] [keytime] * KEYPAIRINFO <hexgrip> <keyref> [usage] [keytime]
*/ */
char *fields[4]; const char *fields[4];
int nfields; int nfields;
const char *hexgrp, *keyref, *usage; const char *hexgrp, *keyref, *usage;
time_t atime; time_t atime;
@ -1467,7 +1467,7 @@ readkey_status_cb (void *opaque, const char *line)
* Note that we use only the first valid KEYPAIRINFO line. More * Note that we use only the first valid KEYPAIRINFO line. More
* lines are possible if a second card carries the same key. * lines are possible if a second card carries the same key.
*/ */
char *fields[4]; const char *fields[4];
int nfields; int nfields;
time_t atime; time_t atime;
@ -2099,7 +2099,7 @@ keyinfo_status_cb (void *opaque, const char *line)
* 6 7 8 * 6 7 8
* <sshfpr> <ttl> <flags> * <sshfpr> <ttl> <flags>
*/ */
char *fields[9]; const char *fields[9];
if (split_fields (s, fields, DIM (fields)) == 9) if (split_fields (s, fields, DIM (fields)) == 9)
{ {

View File

@ -962,7 +962,7 @@ learn_status_cb (void *opaque, const char *line)
/* The format of such a line is: /* The format of such a line is:
* KEYPAIRINFO <hexgrip> <keyref> [usage] [keytime] * KEYPAIRINFO <hexgrip> <keyref> [usage] [keytime]
*/ */
char *fields[4]; const char *fields[4];
int nfields; int nfields;
const char *hexgrp, *usage; const char *hexgrp, *usage;
time_t keytime; time_t keytime;

View File

@ -310,7 +310,7 @@ yk_enable_disable (struct ykapps_s *yk, struct iface_s *iface,
* stream to output information. This function must only be called on * stream to output information. This function must only be called on
* Yubikeys. */ * Yubikeys. */
gpg_error_t gpg_error_t
yubikey_commands (card_info_t info, estream_t fp, int argc, char *argv[]) yubikey_commands (card_info_t info, estream_t fp, int argc, const char *argv[])
{ {
gpg_error_t err; gpg_error_t err;
enum {ykLIST, ykENABLE, ykDISABLE } cmd; enum {ykLIST, ykENABLE, ykDISABLE } cmd;

View File

@ -2189,11 +2189,11 @@ cmd_writekey (card_info_t info, char *argstr)
{ {
gpg_error_t err; gpg_error_t err;
int opt_force; int opt_force;
char *argv[2]; const char *argv[2];
int argc; int argc;
char *keyref_buffer = NULL; char *keyref_buffer = NULL;
char *keyref; const char *keyref;
char *keygrip; const char *keygrip;
if (!info) if (!info)
return print_help return print_help
@ -3376,7 +3376,7 @@ cmd_yubikey (card_info_t info, char *argstr)
{ {
gpg_error_t err, err2; gpg_error_t err, err2;
estream_t fp = opt.interactive? NULL : es_stdout; estream_t fp = opt.interactive? NULL : es_stdout;
char *words[20]; const char *words[20];
int nwords; int nwords;
if (!info) if (!info)

View File

@ -244,7 +244,7 @@ unsigned long agent_get_s2k_count (void);
/*-- card-yubikey.c --*/ /*-- card-yubikey.c --*/
gpg_error_t yubikey_commands (card_info_t info, gpg_error_t yubikey_commands (card_info_t info,
estream_t fp, int argc, char *argv[]); estream_t fp, int argc, const char *argv[]);
#endif /*GNUPG_GPG_CARD_H*/ #endif /*GNUPG_GPG_CARD_H*/

View File

@ -558,7 +558,7 @@ decrypt_stream_status_cb (void *opaque, const char *keyword, char *args)
log_debug ("gpg status: %s %s\n", keyword, args); log_debug ("gpg status: %s %s\n", keyword, args);
if (!strcmp (keyword, "DECRYPTION_KEY") && !decinfo->fpr) if (!strcmp (keyword, "DECRYPTION_KEY") && !decinfo->fpr)
{ {
char *fields[3]; const char *fields[3];
if (split_fields (args, fields, DIM (fields)) >= 3) if (split_fields (args, fields, DIM (fields)) >= 3)
{ {
@ -1199,7 +1199,7 @@ static void
encrypt_response_status_cb (void *opaque, const char *keyword, char *args) encrypt_response_status_cb (void *opaque, const char *keyword, char *args)
{ {
gpg_error_t *failure = opaque; gpg_error_t *failure = opaque;
char *fields[2]; const char *fields[2];
if (DBG_CRYPTO) if (DBG_CRYPTO)
log_debug ("gpg status: %s %s\n", keyword, args); log_debug ("gpg status: %s %s\n", keyword, args);

View File

@ -1553,8 +1553,8 @@ retrieve_options_from_program (gc_component_id_t component, int only_installed)
while ((length = es_read_line (outfp, &line, &line_len, NULL)) > 0) while ((length = es_read_line (outfp, &line, &line_len, NULL)) > 0)
{ {
char *fields[4]; const char *fields[4];
char *optname, *optdesc; const char *optname, *optdesc;
unsigned int optflags; unsigned int optflags;
int short_opt; int short_opt;
gc_arg_type_t arg_type; gc_arg_type_t arg_type;
@ -1621,8 +1621,8 @@ retrieve_options_from_program (gc_component_id_t component, int only_installed)
string_array_size, string_array_size,
sizeof *string_array); sizeof *string_array);
} }
string_array[string_array_used++] = optname = xstrdup (fields[0]); optname = string_array[string_array_used++] = xstrdup (fields[0]);
string_array[string_array_used++] = optdesc = xstrdup (fields[3]); optdesc = string_array[string_array_used++] = xstrdup (fields[3]);
/* Create an option table which can then be supplied to /* Create an option table which can then be supplied to
* gpgrt_parser. Unfortunately there is no private pointer in * gpgrt_parser. Unfortunately there is no private pointer in

View File

@ -361,7 +361,7 @@ query_swdb (estream_t out, const char *name, const char *current_version)
size_t length_of_line = 0; size_t length_of_line = 0;
size_t maxlen; size_t maxlen;
ssize_t len; ssize_t len;
char *fields[2]; const char *fields[2];
char *p; char *p;
gnupg_isotime_t filedate = {0}; gnupg_isotime_t filedate = {0};
gnupg_isotime_t verified = {0}; gnupg_isotime_t verified = {0};

View File

@ -953,7 +953,7 @@ install_key_from_spec_file (const char *fname)
char *line = NULL; char *line = NULL;
size_t linelen = 0; size_t linelen = 0;
size_t maxlen = 2048; size_t maxlen = 2048;
char *fields[2]; const char *fields[2];
unsigned int lnr = 0; unsigned int lnr = 0;
if (!fname || !strcmp (fname, "")) if (!fname || !strcmp (fname, ""))