loadfont,setfont: make them NOEXEC
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
		| @@ -194,7 +194,7 @@ linux32 - noexec. spawner | ||||
| linux64 - noexec. spawner | ||||
| linuxrc - daemon | ||||
| ln - noexec | ||||
| loadfont - leaks: config_open+bb_error_msg_and_die("map format") | ||||
| loadfont - noexec. leaks: config_open+bb_error_msg_and_die("map format") | ||||
| loadkmap - noexec. leaks: get_console_fd_or_die() may open a new fd, or return one of stdio fds | ||||
| logger - runner | ||||
| login - suid, interactive, longterm | ||||
| @@ -306,7 +306,7 @@ sendmail - runner | ||||
| seq - noexec. runner | ||||
| setarch - noexec. spawner | ||||
| setconsole - noexec | ||||
| setfont | ||||
| setfont - noexec. leaks a lot of stuff | ||||
| setkeycodes - noexec | ||||
| setlogcons - noexec | ||||
| setpriv - spawner, changes state, let's play safe and not be noexec | ||||
|   | ||||
| @@ -51,31 +51,12 @@ | ||||
| //config:	default y | ||||
| //config:	depends on LOADFONT || SETFONT | ||||
|  | ||||
| //applet:IF_LOADFONT(APPLET(loadfont, BB_DIR_USR_SBIN, BB_SUID_DROP)) | ||||
| //applet:IF_SETFONT(APPLET(setfont, BB_DIR_USR_SBIN, BB_SUID_DROP)) | ||||
| //applet:IF_LOADFONT(APPLET_NOEXEC(loadfont, loadfont, BB_DIR_USR_SBIN, BB_SUID_DROP, loadfont)) | ||||
| //applet:IF_SETFONT(APPLET_NOEXEC(setfont, setfont, BB_DIR_USR_SBIN, BB_SUID_DROP, setfont)) | ||||
|  | ||||
| //kbuild:lib-$(CONFIG_LOADFONT) += loadfont.o | ||||
| //kbuild:lib-$(CONFIG_SETFONT) += loadfont.o | ||||
|  | ||||
| //usage:#define loadfont_trivial_usage | ||||
| //usage:       "< font" | ||||
| //usage:#define loadfont_full_usage "\n\n" | ||||
| //usage:       "Load a console font from stdin" | ||||
| /* //usage:     "\n	-C TTY	Affect TTY instead of /dev/tty" */ | ||||
| //usage: | ||||
| //usage:#define loadfont_example_usage | ||||
| //usage:       "$ loadfont < /etc/i18n/fontname\n" | ||||
| //usage: | ||||
| //usage:#define setfont_trivial_usage | ||||
| //usage:       "FONT [-m MAPFILE] [-C TTY]" | ||||
| //usage:#define setfont_full_usage "\n\n" | ||||
| //usage:       "Load a console font\n" | ||||
| //usage:     "\n	-m MAPFILE	Load console screen map" | ||||
| //usage:     "\n	-C TTY		Affect TTY instead of /dev/tty" | ||||
| //usage: | ||||
| //usage:#define setfont_example_usage | ||||
| //usage:       "$ setfont -m koi8-r /etc/i18n/fontname\n" | ||||
|  | ||||
| #include "libbb.h" | ||||
| #include <sys/kd.h> | ||||
|  | ||||
| @@ -352,6 +333,14 @@ static void do_load(int fd, unsigned char *buffer, size_t len) | ||||
|  | ||||
|  | ||||
| #if ENABLE_LOADFONT | ||||
| //usage:#define loadfont_trivial_usage | ||||
| //usage:       "< font" | ||||
| //usage:#define loadfont_full_usage "\n\n" | ||||
| //usage:       "Load a console font from stdin" | ||||
| /* //usage:     "\n	-C TTY	Affect TTY instead of /dev/tty" */ | ||||
| //usage: | ||||
| //usage:#define loadfont_example_usage | ||||
| //usage:       "$ loadfont < /etc/i18n/fontname\n" | ||||
| int loadfont_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE; | ||||
| int loadfont_main(int argc UNUSED_PARAM, char **argv) | ||||
| { | ||||
| @@ -380,11 +369,9 @@ int loadfont_main(int argc UNUSED_PARAM, char **argv) | ||||
| } | ||||
| #endif | ||||
|  | ||||
|  | ||||
| #if ENABLE_SETFONT | ||||
|  | ||||
| /* | ||||
| kbd-1.12: | ||||
|  | ||||
| /* kbd-1.12: | ||||
| setfont [-O font+umap.orig] [-o font.orig] [-om cmap.orig] | ||||
| [-ou umap.orig] [-N] [font.new ...] [-m cmap] [-u umap] [-C console] | ||||
| [-hNN] [-v] [-V] | ||||
| @@ -414,8 +401,17 @@ setfont [-O font+umap.orig] [-o font.orig] [-om cmap.orig] | ||||
| -v     Verbose | ||||
| -V     Version | ||||
| */ | ||||
| //usage:#define setfont_trivial_usage | ||||
| //usage:       "FONT [-m MAPFILE] [-C TTY]" | ||||
| //usage:#define setfont_full_usage "\n\n" | ||||
| //usage:       "Load a console font\n" | ||||
| //usage:     "\n	-m MAPFILE	Load console screen map" | ||||
| //usage:     "\n	-C TTY		Affect TTY instead of /dev/tty" | ||||
| //usage: | ||||
| //usage:#define setfont_example_usage | ||||
| //usage:       "$ setfont -m koi8-r /etc/i18n/fontname\n" | ||||
|  | ||||
| #if ENABLE_FEATURE_SETFONT_TEXTUAL_MAP | ||||
| # if ENABLE_FEATURE_SETFONT_TEXTUAL_MAP | ||||
| static int ctoi(char *s) | ||||
| { | ||||
| 	if (s[0] == '\'' && s[1] != '\0' && s[2] == '\'' && s[3] == '\0') | ||||
| @@ -429,7 +425,7 @@ static int ctoi(char *s) | ||||
| 		return -1; | ||||
| 	return xstrtoul(s, 0); | ||||
| } | ||||
| #endif | ||||
| # endif | ||||
|  | ||||
| int setfont_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE; | ||||
| int setfont_main(int argc UNUSED_PARAM, char **argv) | ||||
| @@ -480,7 +476,7 @@ int setfont_main(int argc UNUSED_PARAM, char **argv) | ||||
| 			if (len == 2*E_TABSZ) | ||||
| 				mode = PIO_UNISCRNMAP; | ||||
| 		} | ||||
| #if ENABLE_FEATURE_SETFONT_TEXTUAL_MAP | ||||
| # if ENABLE_FEATURE_SETFONT_TEXTUAL_MAP | ||||
| 		// assume textual Unicode console maps: | ||||
| 		// 0x00 U+0000  #  NULL (NUL) | ||||
| 		// 0x01 U+0001  #  START OF HEADING (SOH) | ||||
| @@ -527,7 +523,7 @@ int setfont_main(int argc UNUSED_PARAM, char **argv) | ||||
| 			} | ||||
| #undef unicodes | ||||
| 		} | ||||
| #endif // ENABLE_FEATURE_SETFONT_TEXTUAL_MAP | ||||
| # endif // ENABLE_FEATURE_SETFONT_TEXTUAL_MAP | ||||
|  | ||||
| 		// do set screen map | ||||
| 		xioctl(fd, mode, map); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user