From a86205b060b01ab000e439091ed40c8ca8b68b73 Mon Sep 17 00:00:00 2001 From: Robert Pluim Date: Sat, 26 Feb 2022 11:46:32 +0100 Subject: [PATCH] Guard against custom entries that can contain NULs There are custom entries that contain lambda's as values by default, which can result in them containing embedded NULs after byte-compilation, which wreaks havoc when they are saved to .emacs and later read in. (Bug#52554) * lisp/cus-edit.el (custom-save-all): Bind print-escape-control-characters to t. * lisp/startup.el (startup--load-user-init-file): Bind inhibit-null-byte-detection to t. --- lisp/cus-edit.el | 6 +++++- lisp/startup.el | 6 +++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/lisp/cus-edit.el b/lisp/cus-edit.el index 79320313975..dae97b02303 100644 --- a/lisp/cus-edit.el +++ b/lisp/cus-edit.el @@ -4798,7 +4798,11 @@ if only the first line of the docstring is shown.")) (delay-mode-hooks (emacs-lisp-mode))) (let ((inhibit-read-only t) (print-length nil) - (print-level nil)) + (print-level nil) + ;; We might be saving byte-code with embedded NULs, which + ;; can cause problems when read back, so print them + ;; readably. (Bug#52554) + (print-escape-control-characters t)) (atomic-change-group (custom-save-variables) (custom-save-faces))) diff --git a/lisp/startup.el b/lisp/startup.el index 9f0b23c904b..ab7b81a707e 100644 --- a/lisp/startup.el +++ b/lisp/startup.el @@ -1044,7 +1044,11 @@ init-file, or to a default value if loading is not possible." (debug-on-error-initial (if (eq init-file-debug t) 'startup - init-file-debug))) + init-file-debug)) + ;; The init file might contain byte-code with embedded NULs, + ;; which can cause problems when read back, so disable nul + ;; byte detection. (Bug#52554) + (inhibit-null-byte-detection t)) (let ((debug-on-error debug-on-error-initial)) (condition-case-unless-debug error (when init-file-user -- 2.39.5