Commit Diff


commit - f057c9262272dcbb93085cde46019e1f62bc541a
commit + 4267093e37fd7cded943399af8afe3ba825a1e68
blob - 6afe035d3db117b210554f087755cb1f99bc6f59
blob + af85343c684fe0f87b43032e134c8bfe94577a21
--- ge.c
+++ ge.c
@@ -139,11 +139,12 @@ static int
 serve(const char *host, int port, const char *dir)
 {
 	struct addrinfo hints, *res, *res0;
-	int error, saved_errno, sock = -1;
+	int r, error, saved_errno, sock = -1;
 	const char *cause = NULL;
 	char service[32];
 
-	if (snprintf(service, sizeof(service), "%d", port) < 0)
+	r = snprintf(service, sizeof(service), "%d", port);
+	if (r < 0 || (size_t)r >= sizeof(service))
 		fatal("snprintf");
 
 	memset(&hints, 0, sizeof(hints));