Apply post-1.17.3 fixes, bump version to 1.17.4

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
diff --git a/Makefile b/Makefile
index b6a9b15..3562832 100644
--- a/Makefile
+++ b/Makefile
@@ -1,6 +1,6 @@
 VERSION = 1
 PATCHLEVEL = 17
-SUBLEVEL = 3
+SUBLEVEL = 4
 EXTRAVERSION =
 NAME = Unnamed
 
diff --git a/coreutils/ls.c b/coreutils/ls.c
index 1197f7d..07bb6af 100644
--- a/coreutils/ls.c
+++ b/coreutils/ls.c
@@ -184,7 +184,7 @@
 	LIST_INO,                   /* i */
 	LIST_LONG | STYLE_LONG,     /* l - remember LS_DISP_HR in mask! */
 	LIST_SHORT | STYLE_SINGLE,  /* 1 */
-	0,                          /* g (don't show group) - handled via OPT_g */
+	0,                          /* g (don't show owner) - handled via OPT_g */
 	LIST_ID_NUMERIC,            /* n */
 	LIST_BLOCKS,                /* s */
 	DISP_ROWS,                  /* x */
@@ -621,7 +621,7 @@
 	if (all_fmt & LIST_ID_NAME) {
 		if (option_mask32 & OPT_g) {
 			column += printf("%-8.8s ",
-				get_cached_username(dn->dstat.st_uid));
+				get_cached_groupname(dn->dstat.st_gid));
 		} else {
 			column += printf("%-8.8s %-8.8s ",
 				get_cached_username(dn->dstat.st_uid),
@@ -631,7 +631,7 @@
 #endif
 	if (all_fmt & LIST_ID_NUMERIC) {
 		if (option_mask32 & OPT_g)
-			column += printf("%-8u ", (int) dn->dstat.st_uid);
+			column += printf("%-8u ", (int) dn->dstat.st_gid);
 		else
 			column += printf("%-8u %-8u ",
 					(int) dn->dstat.st_uid,
diff --git a/coreutils/sort.c b/coreutils/sort.c
index 5c3fa1a..237ac08 100644
--- a/coreutils/sort.c
+++ b/coreutils/sort.c
@@ -412,7 +412,7 @@
 #if ENABLE_FEATURE_SORT_BIG
 	/* Open output file _after_ we read all input ones */
 	if (option_mask32 & FLAG_o)
-		xmove_fd(xopen3(str_o, O_WRONLY, 0666), STDOUT_FILENO);
+		xmove_fd(xopen3(str_o, O_WRONLY|O_CREAT|O_TRUNC, 0666), STDOUT_FILENO);
 #endif
 	flag = (option_mask32 & FLAG_z) ? '\0' : '\n';
 	for (i = 0; i < linecount; i++)
diff --git a/libbb/unicode.c b/libbb/unicode.c
index 5a657b2..afa5a1b 100644
--- a/libbb/unicode.c
+++ b/libbb/unicode.c
@@ -1006,7 +1006,7 @@
 			}
 		}
 		if (stats)
-			stats->byte_count = stats->unicode_count = (d - dst);
+			stats->byte_count = stats->unicode_count = stats->unicode_width = (d - dst);
 		return dst;
 	}
 
diff --git a/networking/dnsd.c b/networking/dnsd.c
index 1a99040..81bc939 100644
--- a/networking/dnsd.c
+++ b/networking/dnsd.c
@@ -388,7 +388,7 @@
 	query_len = strlen(query_string) + 1;
 	/* may be unaligned! */
 	unaligned_type_class = (void *)(query_string + query_len);
-	query_len += sizeof(unaligned_type_class);
+	query_len += sizeof(*unaligned_type_class);
 	/* where to append answer block */
 	answb = (void *)(unaligned_type_class + 1);
 
diff --git a/networking/libiproute/iproute.c b/networking/libiproute/iproute.c
index d771a60..7905a73 100644
--- a/networking/libiproute/iproute.c
+++ b/networking/libiproute/iproute.c
@@ -791,8 +791,8 @@
 				}
 				req.r.rtm_dst_len = addr.bitlen;
 			}
-			argv++;
 		}
+		argv++;
 	}
 
 	if (req.r.rtm_dst_len == 0) {