mirror of
https://github.com/systemd/systemd.git
synced 2025-01-07 21:18:41 +03:00
shared/pager: abort if we cannot set environment variables
This most likely means oom, it's better to exit than to run less with incomplete settings. CID #714383.
This commit is contained in:
parent
643f4706b0
commit
0357fa0dce
@ -104,7 +104,8 @@ int pager_open(bool no_pager, bool jump_to_end) {
|
|||||||
less_opts = "FRSXMK";
|
less_opts = "FRSXMK";
|
||||||
if (jump_to_end)
|
if (jump_to_end)
|
||||||
less_opts = strjoina(less_opts, " +G");
|
less_opts = strjoina(less_opts, " +G");
|
||||||
setenv("LESS", less_opts, 1);
|
if (setenv("LESS", less_opts, 1) < 0)
|
||||||
|
_exit(EXIT_FAILURE);
|
||||||
|
|
||||||
/* Initialize a good charset for less. This is
|
/* Initialize a good charset for less. This is
|
||||||
* particularly important if we output UTF-8
|
* particularly important if we output UTF-8
|
||||||
@ -112,8 +113,9 @@ int pager_open(bool no_pager, bool jump_to_end) {
|
|||||||
less_charset = getenv("SYSTEMD_LESSCHARSET");
|
less_charset = getenv("SYSTEMD_LESSCHARSET");
|
||||||
if (!less_charset && is_locale_utf8())
|
if (!less_charset && is_locale_utf8())
|
||||||
less_charset = "utf-8";
|
less_charset = "utf-8";
|
||||||
if (less_charset)
|
if (less_charset &&
|
||||||
setenv("LESSCHARSET", less_charset, 1);
|
setenv("LESSCHARSET", less_charset, 1) < 0)
|
||||||
|
_exit(EXIT_FAILURE);
|
||||||
|
|
||||||
/* Make sure the pager goes away when the parent dies */
|
/* Make sure the pager goes away when the parent dies */
|
||||||
if (prctl(PR_SET_PDEATHSIG, SIGTERM) < 0)
|
if (prctl(PR_SET_PDEATHSIG, SIGTERM) < 0)
|
||||||
|
Loading…
Reference in New Issue
Block a user