]> asedeno.scripts.mit.edu Git - PuTTY.git/blobdiff - putty.h
Fix a dangerous cross-thread memory access.
[PuTTY.git] / putty.h
diff --git a/putty.h b/putty.h
index a6578ae0c4c1e9c5eef1d15d6ecae7708a806268..5e0439609bfcd3db653b7b8bc7b9c537ea83f33a 100644 (file)
--- a/putty.h
+++ b/putty.h
@@ -848,6 +848,12 @@ void cleanup_exit(int);
     X(INT, NONE, ssh_connection_sharing) \
     X(INT, NONE, ssh_connection_sharing_upstream) \
     X(INT, NONE, ssh_connection_sharing_downstream) \
+    /*
+     * ssh_manual_hostkeys is conceptually a set rather than a
+     * dictionary: the string subkeys are the important thing, and the
+     * actual values to which those subkeys map are all "".
+     */ \
+    X(STR, STR, ssh_manual_hostkeys) \
     /* Options for pterm. Should split out into platform-dependent part. */ \
     X(INT, NONE, stamp_utmp) \
     X(INT, NONE, login_shell) \
@@ -1435,12 +1441,14 @@ void request_callback_notifications(toplevel_callback_notify_fn_t notify,
 #endif
 
 /* SURROGATE PAIR */
-#ifndef IS_HIGH_SURROGATE
 #define HIGH_SURROGATE_START 0xd800
 #define HIGH_SURROGATE_END 0xdbff
 #define LOW_SURROGATE_START 0xdc00
 #define LOW_SURROGATE_END 0xdfff
 
+/* These macros exist in the Windows API, so the environment may
+ * provide them. If not, define them in terms of the above. */
+#ifndef IS_HIGH_SURROGATE
 #define IS_HIGH_SURROGATE(wch) (((wch) >= HIGH_SURROGATE_START) && \
                                 ((wch) <= HIGH_SURROGATE_END))
 #define IS_LOW_SURROGATE(wch) (((wch) >= LOW_SURROGATE_START) && \