diff options
| author | Paul Eggert | 2017-07-14 16:18:37 -0700 |
|---|---|---|
| committer | Paul Eggert | 2017-07-14 16:36:18 -0700 |
| commit | 05b8b866993b957f5fd575846cf8ea3035e60f7e (patch) | |
| tree | 7d25217ee1f4c409cb217c52a6bd152dda675b8a /src/lisp.h | |
| parent | 8b64a80a56c0e15d3313a45022ae60b33dbb4bff (diff) | |
| download | emacs-05b8b866993b957f5fd575846cf8ea3035e60f7e.tar.gz emacs-05b8b866993b957f5fd575846cf8ea3035e60f7e.zip | |
GnuTLS integer-overflow and style fixes
This tweaks the recently-added GnuTLS improvements so that
they avoid some integer-overflow problems and follow typical
Emacs style a bit better.
* configure.ac (HAVE_GNUTLS3_HMAC, HAVE_GNUTLS3_AEAD)
(HAVE_GNUTLS3_CIPHER): Use AC_CACHE_CHECK so that the
configure-time results are displayed.
* src/fns.c (extract_data_from_object): Return char *, not char
const *, since one gnutls caller wants a non-const pointer. Use
CONSP rather than !NILP when testing for conses. Use CAR_SAFE
instead of rolling our own code. Prefer signed types to unsigned
when either will do. Report problems for lengths out of range,
instead of silently mishandling them.
* src/gnutls.c (emacs_gnutls_strerror): New function, to simplify
callers. All callers of gnutls_sterror changed.
(Fgnutls_boot): Check for integers out of range rather than
silently truncating them.
(gnutls_symmetric_aead): Check for integer overflow in size
calculations.
(gnutls_symmetric_aead, Fgnutls_macs, Fgnutls_digests):
Prefer signed to unsigned integers where either will do.
(gnutls_symmetric_aead, gnutls_symmetric):
Work even if ptrdiff_t is wider than ‘long’.
(gnutls_symmetric, Fgnutls_hash_mac, Fgnutls_hash_digest):
Check for integer overflow in algorithm selection.
Diffstat (limited to 'src/lisp.h')
| -rw-r--r-- | src/lisp.h | 4 |
1 files changed, 1 insertions, 3 deletions
diff --git a/src/lisp.h b/src/lisp.h index a5134a9532c..9464bf8559f 100644 --- a/src/lisp.h +++ b/src/lisp.h | |||
| @@ -3386,9 +3386,7 @@ enum { NEXT_ALMOST_PRIME_LIMIT = 11 }; | |||
| 3386 | extern EMACS_INT next_almost_prime (EMACS_INT) ATTRIBUTE_CONST; | 3386 | extern EMACS_INT next_almost_prime (EMACS_INT) ATTRIBUTE_CONST; |
| 3387 | extern Lisp_Object larger_vector (Lisp_Object, ptrdiff_t, ptrdiff_t); | 3387 | extern Lisp_Object larger_vector (Lisp_Object, ptrdiff_t, ptrdiff_t); |
| 3388 | extern void sweep_weak_hash_tables (void); | 3388 | extern void sweep_weak_hash_tables (void); |
| 3389 | extern const char* extract_data_from_object (Lisp_Object spec, | 3389 | extern char *extract_data_from_object (Lisp_Object, ptrdiff_t *, ptrdiff_t *); |
| 3390 | ptrdiff_t *start_byte, | ||
| 3391 | ptrdiff_t *end_byte); | ||
| 3392 | EMACS_UINT hash_string (char const *, ptrdiff_t); | 3390 | EMACS_UINT hash_string (char const *, ptrdiff_t); |
| 3393 | EMACS_UINT sxhash (Lisp_Object, int); | 3391 | EMACS_UINT sxhash (Lisp_Object, int); |
| 3394 | Lisp_Object make_hash_table (struct hash_table_test, EMACS_INT, float, float, | 3392 | Lisp_Object make_hash_table (struct hash_table_test, EMACS_INT, float, float, |