diff options
author | Werner Koch <wk@gnupg.org> | 2013-09-07 10:06:46 +0200 |
---|---|---|
committer | Werner Koch <wk@gnupg.org> | 2013-09-20 18:30:05 +0200 |
commit | 3e5cfa20acfeccb9df2c3fae2730344b40b36104 (patch) | |
tree | 7b1eb9a1d34da43b39ac44ad45104f3cdbf31f24 /src | |
parent | 722bfc1e5f2268453db62f38cc46b5ec6ef3adee (diff) | |
download | libgcrypt-3e5cfa20acfeccb9df2c3fae2730344b40b36104.tar.gz |
sexp: Change internal versions to always use gpg_err_code_t.
* src/sexp.c (gcry_sexp_new, gcry_sexp_create, gcry_sexp_build)
(gcry_sexp_build_array, gcry_sexp_canon_len): Change error return type
from gpg_error_t to gpg_err_code_t. Remove all calls to gpg_error.
* src/visibility.c (gcry_sexp_new, gcry_sexp_create, gcry_sexp_sscan)
(gcry_sexp_build, gcry_sexp_build_array, gcry_sexp_canon_len): Map
error codes via gpg_error.
* cipher/dsa.c, cipher/ecc.c, cipher/elgamal.c, cipher/rsa.c: Remove
use gpg_err_code wrappers.
--
We should do such a change for all other use of internal functions.
It just does not make sense to use gpg_error in the internal interface
because the error source is always Libgcrypt.
Signed-off-by: Werner Koch <wk@gnupg.org>
Diffstat (limited to 'src')
-rw-r--r-- | src/cipher-proto.h | 2 | ||||
-rw-r--r-- | src/g10lib.h | 4 | ||||
-rw-r--r-- | src/sexp.c | 64 | ||||
-rw-r--r-- | src/visibility.c | 24 |
4 files changed, 51 insertions, 43 deletions
diff --git a/src/cipher-proto.h b/src/cipher-proto.h index 212857b8..5b152b59 100644 --- a/src/cipher-proto.h +++ b/src/cipher-proto.h @@ -24,6 +24,8 @@ #define G10_CIPHER_PROTO_H +enum pk_encoding; + /* Definition of a function used to report selftest failures. DOMAIN is a string describing the function block: diff --git a/src/g10lib.h b/src/g10lib.h index 57176e9f..73ba6830 100644 --- a/src/g10lib.h +++ b/src/g10lib.h @@ -405,8 +405,8 @@ gcry_err_code_t _gcry_mpi_init (void); /*-- sexp.c --*/ -gcry_error_t _gcry_sexp_vbuild (gcry_sexp_t *retsexp, size_t *erroff, - const char *format, va_list arg_ptr); +gcry_err_code_t _gcry_sexp_vbuild (gcry_sexp_t *retsexp, size_t *erroff, + const char *format, va_list arg_ptr); gcry_mpi_t _gcry_sexp_nth_opaque_mpi (gcry_sexp_t list, int number); char *_gcry_sexp_nth_string (const gcry_sexp_t list, int number); @@ -54,12 +54,12 @@ struct gcry_sexp #define TOKEN_SPECIALS "-./_:*+=" -static gcry_error_t +static gcry_err_code_t vsexp_sscan (gcry_sexp_t *retsexp, size_t *erroff, const char *buffer, size_t length, int argflag, void **arg_list, va_list arg_ptr); -static gcry_error_t +static gcry_err_code_t sexp_sscan (gcry_sexp_t *retsexp, size_t *erroff, const char *buffer, size_t length, int argflag, void **arg_list, ...); @@ -210,18 +210,18 @@ normalize ( gcry_sexp_t list ) This function returns 0 and and the pointer to the new object in RETSEXP or an error code in which case RETSEXP is set to NULL. */ -gcry_error_t +gcry_err_code_t gcry_sexp_create (gcry_sexp_t *retsexp, void *buffer, size_t length, int autodetect, void (*freefnc)(void*) ) { - gcry_error_t errcode; + gcry_err_code_t errcode; gcry_sexp_t se; if (!retsexp) - return gcry_error (GPG_ERR_INV_ARG); + return GPG_ERR_INV_ARG; *retsexp = NULL; if (autodetect < 0 || autodetect > 1 || !buffer) - return gcry_error (GPG_ERR_INV_ARG); + return GPG_ERR_INV_ARG; if (!length && !autodetect) { /* What a brave caller to assume that there is really a canonical @@ -249,11 +249,11 @@ gcry_sexp_create (gcry_sexp_t *retsexp, void *buffer, size_t length, GCRYSEXP object and use the BUFFER directly. */ freefnc (buffer); } - return gcry_error (GPG_ERR_NO_ERROR); + return 0; } /* Same as gcry_sexp_create but don't transfer ownership */ -gcry_error_t +gcry_err_code_t gcry_sexp_new (gcry_sexp_t *retsexp, const void *buffer, size_t length, int autodetect) { @@ -1047,7 +1047,7 @@ unquote_string (const char *string, size_t length, unsigned char *buf) * common operation gcry_sexp_cdr_mpi() will always return a secure MPI * regardless whether it is needed or not. */ -static gcry_error_t +static gpg_err_code_t vsexp_sscan (gcry_sexp_t *retsexp, size_t *erroff, const char *buffer, size_t length, int argflag, void **arg_list, va_list arg_ptr) @@ -1643,18 +1643,18 @@ vsexp_sscan (gcry_sexp_t *retsexp, size_t *erroff, else *retsexp = normalize (c.sexp); - return gcry_error (err); + return err; #undef MAKE_SPACE #undef STORE_LEN } -static gcry_error_t +static gpg_err_code_t sexp_sscan (gcry_sexp_t *retsexp, size_t *erroff, const char *buffer, size_t length, int argflag, void **arg_list, ...) { - gcry_error_t rc; + gcry_err_code_t rc; va_list arg_ptr; va_start (arg_ptr, arg_list); @@ -1666,10 +1666,10 @@ sexp_sscan (gcry_sexp_t *retsexp, size_t *erroff, } -gcry_error_t +gpg_err_code_t gcry_sexp_build (gcry_sexp_t *retsexp, size_t *erroff, const char *format, ...) { - gcry_error_t rc; + gcry_err_code_t rc; va_list arg_ptr; va_start (arg_ptr, format); @@ -1681,7 +1681,7 @@ gcry_sexp_build (gcry_sexp_t *retsexp, size_t *erroff, const char *format, ...) } -gcry_error_t +gcry_err_code_t _gcry_sexp_vbuild (gcry_sexp_t *retsexp, size_t *erroff, const char *format, va_list arg_ptr) { @@ -1692,7 +1692,7 @@ _gcry_sexp_vbuild (gcry_sexp_t *retsexp, size_t *erroff, /* Like gcry_sexp_build, but uses an array instead of variable function arguments. */ -gcry_error_t +gcry_err_code_t gcry_sexp_build_array (gcry_sexp_t *retsexp, size_t *erroff, const char *format, void **arg_list) { @@ -1700,7 +1700,7 @@ gcry_sexp_build_array (gcry_sexp_t *retsexp, size_t *erroff, } -gcry_error_t +gcry_err_code_t gcry_sexp_sscan (gcry_sexp_t *retsexp, size_t *erroff, const char *buffer, size_t length) { @@ -1987,13 +1987,13 @@ gcry_sexp_sprint (const gcry_sexp_t list, int mode, NULL. */ size_t gcry_sexp_canon_len (const unsigned char *buffer, size_t length, - size_t *erroff, gcry_error_t *errcode) + size_t *erroff, gcry_err_code_t *errcode) { const unsigned char *p; const unsigned char *disphint = NULL; unsigned int datalen = 0; size_t dummy_erroff; - gcry_error_t dummy_errcode; + gcry_err_code_t dummy_errcode; size_t count = 0; int level = 0; @@ -2002,13 +2002,13 @@ gcry_sexp_canon_len (const unsigned char *buffer, size_t length, if (!errcode) errcode = &dummy_errcode; - *errcode = gcry_error (GPG_ERR_NO_ERROR); + *errcode = GPG_ERR_NO_ERROR; *erroff = 0; if (!buffer) return 0; if (*buffer != '(') { - *errcode = gcry_error (GPG_ERR_SEXP_NOT_CANONICAL); + *errcode = GPG_ERR_SEXP_NOT_CANONICAL; return 0; } @@ -2017,7 +2017,7 @@ gcry_sexp_canon_len (const unsigned char *buffer, size_t length, if (length && count >= length) { *erroff = count; - *errcode = gcry_error (GPG_ERR_SEXP_STRING_TOO_LONG); + *errcode = GPG_ERR_SEXP_STRING_TOO_LONG; return 0; } @@ -2028,7 +2028,7 @@ gcry_sexp_canon_len (const unsigned char *buffer, size_t length, if (length && (count+datalen) >= length) { *erroff = count; - *errcode = gcry_error (GPG_ERR_SEXP_STRING_TOO_LONG); + *errcode = GPG_ERR_SEXP_STRING_TOO_LONG; return 0; } count += datalen; @@ -2040,7 +2040,7 @@ gcry_sexp_canon_len (const unsigned char *buffer, size_t length, else { *erroff = count; - *errcode = gcry_error (GPG_ERR_SEXP_INV_LEN_SPEC); + *errcode = GPG_ERR_SEXP_INV_LEN_SPEC; return 0; } } @@ -2049,7 +2049,7 @@ gcry_sexp_canon_len (const unsigned char *buffer, size_t length, if (disphint) { *erroff = count; - *errcode = gcry_error (GPG_ERR_SEXP_UNMATCHED_DH); + *errcode = GPG_ERR_SEXP_UNMATCHED_DH; return 0; } level++; @@ -2059,13 +2059,13 @@ gcry_sexp_canon_len (const unsigned char *buffer, size_t length, if (!level) { *erroff = count; - *errcode = gcry_error (GPG_ERR_SEXP_UNMATCHED_PAREN); + *errcode = GPG_ERR_SEXP_UNMATCHED_PAREN; return 0; } if (disphint) { *erroff = count; - *errcode = gcry_error (GPG_ERR_SEXP_UNMATCHED_DH); + *errcode = GPG_ERR_SEXP_UNMATCHED_DH; return 0; } if (!--level) @@ -2076,7 +2076,7 @@ gcry_sexp_canon_len (const unsigned char *buffer, size_t length, if (disphint) { *erroff = count; - *errcode = gcry_error (GPG_ERR_SEXP_NESTED_DH); + *errcode = GPG_ERR_SEXP_NESTED_DH; return 0; } disphint = p; @@ -2086,7 +2086,7 @@ gcry_sexp_canon_len (const unsigned char *buffer, size_t length, if ( !disphint ) { *erroff = count; - *errcode = gcry_error (GPG_ERR_SEXP_UNMATCHED_DH); + *errcode = GPG_ERR_SEXP_UNMATCHED_DH; return 0; } disphint = NULL; @@ -2096,7 +2096,7 @@ gcry_sexp_canon_len (const unsigned char *buffer, size_t length, if (*p == '0') { *erroff = count; - *errcode = gcry_error (GPG_ERR_SEXP_ZERO_PREFIX); + *errcode = GPG_ERR_SEXP_ZERO_PREFIX; return 0; } datalen = atoi_1 (p); @@ -2104,13 +2104,13 @@ gcry_sexp_canon_len (const unsigned char *buffer, size_t length, else if (*p == '&' || *p == '\\') { *erroff = count; - *errcode = gcry_error (GPG_ERR_SEXP_UNEXPECTED_PUNC); + *errcode = GPG_ERR_SEXP_UNEXPECTED_PUNC; return 0; } else { *erroff = count; - *errcode = gcry_error (GPG_ERR_SEXP_BAD_CHARACTER); + *errcode = GPG_ERR_SEXP_BAD_CHARACTER; return 0; } } diff --git a/src/visibility.c b/src/visibility.c index 3c8041ab..cfb159fa 100644 --- a/src/visibility.c +++ b/src/visibility.c @@ -86,7 +86,7 @@ gcry_sexp_new (gcry_sexp_t *retsexp, const void *buffer, size_t length, int autodetect) { - return _gcry_sexp_new (retsexp, buffer, length, autodetect); + return gpg_error (_gcry_sexp_new (retsexp, buffer, length, autodetect)); } gcry_error_t @@ -94,35 +94,35 @@ gcry_sexp_create (gcry_sexp_t *retsexp, void *buffer, size_t length, int autodetect, void (*freefnc) (void *)) { - return _gcry_sexp_create (retsexp, buffer, length, - autodetect, freefnc); + return gpg_error (_gcry_sexp_create (retsexp, buffer, length, + autodetect, freefnc)); } gcry_error_t gcry_sexp_sscan (gcry_sexp_t *retsexp, size_t *erroff, const char *buffer, size_t length) { - return _gcry_sexp_sscan (retsexp, erroff, buffer, length); + return gpg_error (_gcry_sexp_sscan (retsexp, erroff, buffer, length)); } gcry_error_t gcry_sexp_build (gcry_sexp_t *retsexp, size_t *erroff, const char *format, ...) { - gcry_error_t err; + gcry_err_code_t rc; va_list arg_ptr; va_start (arg_ptr, format); - err = _gcry_sexp_vbuild (retsexp, erroff, format, arg_ptr); + rc = _gcry_sexp_vbuild (retsexp, erroff, format, arg_ptr); va_end (arg_ptr); - return err; + return gpg_error (rc); } gcry_error_t gcry_sexp_build_array (gcry_sexp_t *retsexp, size_t *erroff, const char *format, void **arg_list) { - return _gcry_sexp_build_array (retsexp, erroff, format, arg_list); + return gpg_error (_gcry_sexp_build_array (retsexp, erroff, format, arg_list)); } void @@ -135,7 +135,13 @@ size_t gcry_sexp_canon_len (const unsigned char *buffer, size_t length, size_t *erroff, gcry_error_t *errcode) { - return _gcry_sexp_canon_len (buffer, length, erroff, errcode); + size_t n; + gpg_err_code_t rc; + + n = _gcry_sexp_canon_len (buffer, length, erroff, &rc); + if (errcode) + *errcode = gpg_error (rc); + return n; } size_t |