aboutsummaryrefslogtreecommitdiffstats
path: root/src/lisp.h
diff options
context:
space:
mode:
authorPaul Eggert2017-07-14 16:18:37 -0700
committerPaul Eggert2017-07-14 16:36:18 -0700
commit05b8b866993b957f5fd575846cf8ea3035e60f7e (patch)
tree7d25217ee1f4c409cb217c52a6bd152dda675b8a /src/lisp.h
parent8b64a80a56c0e15d3313a45022ae60b33dbb4bff (diff)
downloademacs-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.h4
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 };
3386extern EMACS_INT next_almost_prime (EMACS_INT) ATTRIBUTE_CONST; 3386extern EMACS_INT next_almost_prime (EMACS_INT) ATTRIBUTE_CONST;
3387extern Lisp_Object larger_vector (Lisp_Object, ptrdiff_t, ptrdiff_t); 3387extern Lisp_Object larger_vector (Lisp_Object, ptrdiff_t, ptrdiff_t);
3388extern void sweep_weak_hash_tables (void); 3388extern void sweep_weak_hash_tables (void);
3389extern const char* extract_data_from_object (Lisp_Object spec, 3389extern char *extract_data_from_object (Lisp_Object, ptrdiff_t *, ptrdiff_t *);
3390 ptrdiff_t *start_byte,
3391 ptrdiff_t *end_byte);
3392EMACS_UINT hash_string (char const *, ptrdiff_t); 3390EMACS_UINT hash_string (char const *, ptrdiff_t);
3393EMACS_UINT sxhash (Lisp_Object, int); 3391EMACS_UINT sxhash (Lisp_Object, int);
3394Lisp_Object make_hash_table (struct hash_table_test, EMACS_INT, float, float, 3392Lisp_Object make_hash_table (struct hash_table_test, EMACS_INT, float, float,