libbb: [x]fopen_for_{read,write} introduced and used.
 (by Valdimir)

function                                             old     new   delta
config_open2                                           -      41     +41
config_read                                          507     542     +35
find_pair                                            169     187     +18
fopen_for_write                                        -      14     +14
fopen_for_read                                         -      14     +14
find_main                                            406     418     +12
xfopen_for_write                                       -      10     +10
xfopen_for_read                                        -      10     +10
popstring                                            134     140      +6
parse_inittab                                        396     401      +5
next_token                                           923     928      +5
pack_gzip                                           1659    1661      +2
bb__parsespent                                       117     119      +2
fallbackSort                                        1719    1717      -2
evalvar                                             1376    1374      -2
qrealloc                                              36      33      -3
...
...
...
...
singlemount                                         4579    4569     -10
process_stdin                                        443     433     -10
patch_main                                          1111    1101     -10
ifupdown_main                                       2175    2165     -10
file_action_grep                                      90      80     -10
uuidcache_init                                       649     637     -12
hush_main                                            797     785     -12
read_config                                          230     217     -13
dpkg_main                                           3835    3820     -15
read_line_input                                     3134    3110     -24
sysctl_main                                          232     203     -29
config_open                                           40      10     -30
WARN_BAD_LINE                                         44       -     -44
login_main                                          1714    1575    -139
------------------------------------------------------------------------------
(add/remove: 5/1 grow/shrink: 8/74 up/down: 174/-737)        Total: -563 bytes


diff --git a/selinux/setfiles.c b/selinux/setfiles.c
index d567f83..8eb04e6 100644
--- a/selinux/setfiles.c
+++ b/selinux/setfiles.c
@@ -554,7 +554,7 @@
 	if ((applet_name[0] == 's') && (flags & OPT_c)) {
 		FILE *policystream;
 
-		policystream = xfopen(policyfile, "r");
+		policystream = xfopen_for_read(policyfile);
 		if (sepol_set_policydb_from_file(policystream) < 0) {
 			bb_error_msg_and_die("sepol_set_policydb_from_file on %s", policyfile);
 		}
@@ -575,7 +575,7 @@
 	if (flags & OPT_o) {
 		outfile = stdout;
 		if (NOT_LONE_CHAR(out_filename, '-')) {
-			outfile = xfopen(out_filename, "w");
+			outfile = xfopen_for_write(out_filename);
 		}
 	}
 	if (applet_name[0] == 'r') { /* restorecon */
@@ -620,7 +620,7 @@
 		FILE *f = stdin;
 
 		if (NOT_LONE_CHAR(input_filename, '-'))
-			f = xfopen(input_filename, "r");
+			f = xfopen_for_read(input_filename);
 		while ((len = getline(&buf, &buf_len, f)) > 0) {
 			buf[len - 1] = '\0';
 			errors |= process_one(buf);