From 52ba5e67cad4311d0ddbc4f2979e20afd0161d1f Mon Sep 17 00:00:00 2001 From: Werner Koch Date: Fri, 31 Mar 2017 20:06:54 +0200 Subject: gpg: Assert that an opaque parameter is really what we expect. * g10/gpg.h (SERVER_CONTROL_MAGIC): New const. (server_control_s): Add field 'magic'. * g10/gpg.c (gpg_init_default_ctrl): Init MAGIC. * g10/import.c (impex_filter_getval): Assert MAGIC. Signed-off-by: Werner Koch --- g10/gpg.h | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'g10/gpg.h') diff --git a/g10/gpg.h b/g10/gpg.h index 3bf023be6..c66358570 100644 --- a/g10/gpg.h +++ b/g10/gpg.h @@ -68,11 +68,20 @@ struct tofu_dbs_s; typedef struct tofu_dbs_s *tofu_dbs_t; +#if SIZEOF_UNSIGNED_LONG == 8 +# define SERVER_CONTROL_MAGIC 0x53616c696e676572 +#else +# define SERVER_CONTROL_MAGIC 0x53616c69 +#endif + /* Session control object. This object is passed to most functions to convey the status of a session. Note that the defaults are set by gpg_init_default_ctrl(). */ struct server_control_s { + /* Always has the value SERVER_CONTROL_MAGIC. */ + unsigned long magic; + /* Local data for server.c */ struct server_local_s *server_local; -- cgit v1.2.3