<feed xmlns='http://www.w3.org/2005/Atom'>
<title>emacs, branch scratch/seccomp-helper-binary</title>
<subtitle>Emacs is the extensible, customizable, self-documenting real-time display editor. 
</subtitle>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/'/>
<entry>
<title>Add a helper binary to create a basic Secure Computing filter.</title>
<updated>2021-04-10T19:01:46+00:00</updated>
<author>
<name>Philipp Stephani</name>
</author>
<published>2020-12-17T10:20:55+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=f3a7536aa29e6690c66f69174079ba51d40c0443'/>
<id>f3a7536aa29e6690c66f69174079ba51d40c0443</id>
<content type='text'>
The binary uses the 'seccomp' helper library.  The library isn't
needed to load the generated Secure Computing filter.

* configure.ac: Check for 'seccomp' header and library.

* lib-src/seccomp-filter.c: New helper binary to generate a generic
Secure Computing filter for GNU/Linux.

* lib-src/Makefile.in (DONT_INSTALL): Add 'seccomp-filter' helper
binary if possible.
(all): Add Secure Computing filter file if possible.
(seccomp-filter$(EXEEXT)): Compile helper binary.
(seccomp-filter.bpf seccomp-filter.pfc): Generate filter files.

* test/src/emacs-tests.el (emacs-tests/seccomp/allows-stdout)
(emacs-tests/seccomp/forbids-subprocess): New unit tests.

* test/Makefile.in (src/emacs-tests.log): Add dependency on the helper
binary.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The binary uses the 'seccomp' helper library.  The library isn't
needed to load the generated Secure Computing filter.

* configure.ac: Check for 'seccomp' header and library.

* lib-src/seccomp-filter.c: New helper binary to generate a generic
Secure Computing filter for GNU/Linux.

* lib-src/Makefile.in (DONT_INSTALL): Add 'seccomp-filter' helper
binary if possible.
(all): Add Secure Computing filter file if possible.
(seccomp-filter$(EXEEXT)): Compile helper binary.
(seccomp-filter.bpf seccomp-filter.pfc): Generate filter files.

* test/src/emacs-tests.el (emacs-tests/seccomp/allows-stdout)
(emacs-tests/seccomp/forbids-subprocess): New unit tests.

* test/Makefile.in (src/emacs-tests.log): Add dependency on the helper
binary.
</pre>
</div>
</content>
</entry>
<entry>
<title>* src/emacs.c (load_seccomp): Fix condition.</title>
<updated>2021-04-10T18:37:29+00:00</updated>
<author>
<name>Philipp Stephani</name>
</author>
<published>2021-04-10T18:35:06+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=2d17e0124e4232db6344b18cec466eb31920e675'/>
<id>2d17e0124e4232db6344b18cec466eb31920e675</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Read file in a loop if necessary.</title>
<updated>2021-04-10T18:37:29+00:00</updated>
<author>
<name>Philipp Stephani</name>
</author>
<published>2020-12-14T20:25:11+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=8a84f97abed548e4a254a9b855c3f79dac8c3d5d'/>
<id>8a84f97abed548e4a254a9b855c3f79dac8c3d5d</id>
<content type='text'>
This allows for short reads from 'emacs_read'.

* src/emacs.c (read_full): New helper function.
(load_seccomp): Use it.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This allows for short reads from 'emacs_read'.

* src/emacs.c (read_full): New helper function.
(load_seccomp): Use it.
</pre>
</div>
</content>
</entry>
<entry>
<title>; * etc/NEWS: Fix the wording of a recently added entry.</title>
<updated>2021-04-10T18:17:09+00:00</updated>
<author>
<name>Eli Zaretskii</name>
</author>
<published>2021-04-10T18:17:09+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=15122b31040f8945d0998510abd52c7735b36bc7'/>
<id>15122b31040f8945d0998510abd52c7735b36bc7</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Add support for --seccomp command-line option.</title>
<updated>2021-04-10T16:47:26+00:00</updated>
<author>
<name>Philipp Stephani</name>
</author>
<published>2020-12-14T20:25:11+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=be8328acf9aa464f848e682e63e417a18529af9e'/>
<id>be8328acf9aa464f848e682e63e417a18529af9e</id>
<content type='text'>
When passing this option on GNU/Linux, Emacs installs a Secure
Computing kernel system call filter.  See Bug#45198.

* configure.ac: Check for seccomp header.

* src/emacs.c (usage_message): Document --seccomp option.
(emacs_seccomp): New wrapper for 'seccomp' syscall.
(load_seccomp, maybe_load_seccomp): New helper functions.
(main): Potentially load seccomp filters during startup.
(standard_args): Add --seccomp option.

* lisp/startup.el (command-line): Detect and ignore --seccomp option.

* test/src/emacs-tests.el (emacs-tests/seccomp/absent-file)
(emacs-tests/seccomp/empty-file)
(emacs-tests/seccomp/file-too-large)
(emacs-tests/seccomp/invalid-file-size): New unit tests.
(emacs-tests--with-temp-file): New helper macro.

* etc/NEWS: Document new --seccomp option.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
When passing this option on GNU/Linux, Emacs installs a Secure
Computing kernel system call filter.  See Bug#45198.

* configure.ac: Check for seccomp header.

* src/emacs.c (usage_message): Document --seccomp option.
(emacs_seccomp): New wrapper for 'seccomp' syscall.
(load_seccomp, maybe_load_seccomp): New helper functions.
(main): Potentially load seccomp filters during startup.
(standard_args): Add --seccomp option.

* lisp/startup.el (command-line): Detect and ignore --seccomp option.

* test/src/emacs-tests.el (emacs-tests/seccomp/absent-file)
(emacs-tests/seccomp/empty-file)
(emacs-tests/seccomp/file-too-large)
(emacs-tests/seccomp/invalid-file-size): New unit tests.
(emacs-tests--with-temp-file): New helper macro.

* etc/NEWS: Document new --seccomp option.
</pre>
</div>
</content>
</entry>
<entry>
<title>Edebug: Disable backtracking when hitting a &amp;define keyword.</title>
<updated>2021-04-10T16:19:49+00:00</updated>
<author>
<name>Philipp Stephani</name>
</author>
<published>2021-03-18T11:40:08+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=53dfd85a7f971875e716a55f010ee508bce89eed'/>
<id>53dfd85a7f971875e716a55f010ee508bce89eed</id>
<content type='text'>
Edebug doesn't deal well with backtracking out of definitions, see
Bug#41988.  Rather than trying to support this rare situation (e.g. by
implementing a multipass parser), prevent it by adding an implicit
gate.

* lisp/emacs-lisp/edebug.el (edebug--match-&amp;-spec-op): Disable
backtracking when hitting a &amp;define keyword.

* test/lisp/emacs-lisp/edebug-tests.el
(edebug-tests-duplicate-&amp;define): New unit test.
(edebug-tests--duplicate-&amp;define): New helper macro.

* doc/lispref/edebug.texi (Backtracking): Mention &amp;define in the list
of constructs that disable backtracking.

* etc/NEWS: Document new behavior.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Edebug doesn't deal well with backtracking out of definitions, see
Bug#41988.  Rather than trying to support this rare situation (e.g. by
implementing a multipass parser), prevent it by adding an implicit
gate.

* lisp/emacs-lisp/edebug.el (edebug--match-&amp;-spec-op): Disable
backtracking when hitting a &amp;define keyword.

* test/lisp/emacs-lisp/edebug-tests.el
(edebug-tests-duplicate-&amp;define): New unit test.
(edebug-tests--duplicate-&amp;define): New helper macro.

* doc/lispref/edebug.texi (Backtracking): Mention &amp;define in the list
of constructs that disable backtracking.

* etc/NEWS: Document new behavior.
</pre>
</div>
</content>
</entry>
<entry>
<title>* lisp/gnus/nnagent.el: Fix spurious empty line at BOB</title>
<updated>2021-04-10T16:19:16+00:00</updated>
<author>
<name>Stefan Monnier</name>
</author>
<published>2021-04-10T16:19:16+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=b72571ca49dd16be174f02ed14b460c136c9aaf2'/>
<id>b72571ca49dd16be174f02ed14b460c136c9aaf2</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>* lisp/edmacro.el: Use lexical-binding</title>
<updated>2021-04-10T16:18:22+00:00</updated>
<author>
<name>Stefan Monnier</name>
</author>
<published>2021-04-10T16:18:22+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=6b81f7c1ddd3c00ad74a82584a3bc2c3743eddd5'/>
<id>6b81f7c1ddd3c00ad74a82584a3bc2c3743eddd5</id>
<content type='text'>
(edmacro-finish-edit, edmacro-parse-keys): Use `match-string`.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
(edmacro-finish-edit, edmacro-parse-keys): Use `match-string`.
</pre>
</div>
</content>
</entry>
<entry>
<title>* lisp/files-x.el: Use lexical-binding</title>
<updated>2021-04-10T16:08:36+00:00</updated>
<author>
<name>Stefan Monnier</name>
</author>
<published>2021-04-10T16:08:36+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=3c051db646b34995c144327ed462a92ffbb41f86'/>
<id>3c051db646b34995c144327ed462a92ffbb41f86</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>* lisp/ps-mule.el: Use lexical-binding</title>
<updated>2021-04-10T13:52:09+00:00</updated>
<author>
<name>Stefan Monnier</name>
</author>
<published>2021-04-10T13:52:09+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=649e5c26edc89373778016898652faaaf9a7275c'/>
<id>649e5c26edc89373778016898652faaaf9a7275c</id>
<content type='text'>
(ps-mule-encode-header-string, ps-mule-begin-job): Use `pcase`.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
(ps-mule-encode-header-string, ps-mule-begin-job): Use `pcase`.
</pre>
</div>
</content>
</entry>
</feed>
