From mboxrd@z Thu Jan 1 00:00:00 1970 X-Msuck: nntp://news.gmane.org/gmane.linux.lib.musl.general/6790 Path: news.gmane.org!not-for-mail From: Dima Krasner Newsgroups: gmane.linux.lib.musl.general Subject: Possible bug in openlog() Date: Mon, 5 Jan 2015 15:39:14 +0200 Message-ID: <20150105153914.304dd6c8f15598925bc4b0aa@dimakrasner.com> Reply-To: musl@lists.openwall.com NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: multipart/signed; protocol="application/pgp-signature"; micalg="PGP-SHA1"; boundary="Signature=_Mon__5_Jan_2015_15_39_14_+0200_2Xq0.1mSd9ZkkOa_" X-Trace: ger.gmane.org 1420470839 22946 80.91.229.3 (5 Jan 2015 15:13:59 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Mon, 5 Jan 2015 15:13:59 +0000 (UTC) To: musl@lists.openwall.com Original-X-From: musl-return-6803-gllmg-musl=m.gmane.org@lists.openwall.com Mon Jan 05 16:13:54 2015 Return-path: Envelope-to: gllmg-musl@m.gmane.org Original-Received: from mother.openwall.net ([195.42.179.200]) by plane.gmane.org with smtp (Exim 4.69) (envelope-from ) id 1Y89Lt-0004I3-Tz for gllmg-musl@m.gmane.org; Mon, 05 Jan 2015 16:13:54 +0100 Original-Received: (qmail 7381 invoked by uid 550); 5 Jan 2015 15:13:51 -0000 Mailing-List: contact musl-help@lists.openwall.com; run by ezmlm Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: Original-Received: (qmail 29934 invoked from network); 5 Jan 2015 13:39:34 -0000 X-Mailer: Sylpheed 3.4.1 (GTK+ 2.24.23; x86_64-pc-linux-gnu) X-Zoho-Virus-Status: 1 X-ZohoMailClient: External Xref: news.gmane.org gmane.linux.lib.musl.general:6790 Archived-At: --Signature=_Mon__5_Jan_2015_15_39_14_+0200_2Xq0.1mSd9ZkkOa_ Content-Type: multipart/mixed; boundary="Multipart=_Mon__5_Jan_2015_15_39_14_+0200_dLY5V=hyJviML15=" --Multipart=_Mon__5_Jan_2015_15_39_14_+0200_dLY5V=hyJviML15= Content-Type: text/plain; charset=US-ASCII Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Hi, I think I found a bug in openlog() - it's racy. If syslogd is started after= openlog() is called, there's a small chance that the socket will remain op= en, while connect() failed. Then, syslog() does not call openlog() again, b= ecause it only checks whether the socket file descriptor is valid. Therefore, all syslog() messages are dropped silently and nothing gets logg= ed. I attached a fix. Can you merge it or provide feedback, please? Thank you, Dima --=20 Dima Krasner, dimakrasner.com --Multipart=_Mon__5_Jan_2015_15_39_14_+0200_dLY5V=hyJviML15= Content-Type: text/x-diff; name="musl-syslog-retry.patch" Content-Disposition: attachment; filename="musl-syslog-retry.patch" Content-Transfer-Encoding: quoted-printable diff -rup musl-1.0.4-orig/src/misc/syslog.c musl-1.0.4/src/misc/syslog.c --- musl-1.0.4-orig/src/misc/syslog.c 2015-01-05 15:15:35.349015771 +0200 +++ musl-1.0.4/src/misc/syslog.c 2015-01-05 15:21:30.525024212 +0200 @@ -46,7 +46,11 @@ void closelog(void) static void __openlog() { log_fd =3D socket(AF_UNIX, SOCK_DGRAM|SOCK_CLOEXEC, 0); - if (log_fd >=3D 0) connect(log_fd, (void *)&log_addr, sizeof log_addr); + if (log_fd < 0) return; + if (connect(log_fd, (void *)&log_addr, sizeof log_addr) < 0) { + close(log_fd); + log_fd =3D -1; + } } =20 void openlog(const char *ident, int opt, int facility) --Multipart=_Mon__5_Jan_2015_15_39_14_+0200_dLY5V=hyJviML15=-- --Signature=_Mon__5_Jan_2015_15_39_14_+0200_2Xq0.1mSd9ZkkOa_ Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQIcBAEBAgAGBQJUqpQCAAoJEChhFchhspfVQy4P+wcfqtBhdkh+KocAajeQdfMb UPmxMg2OP32fZih746v4CYBs1vjiw9FkqFa8QXhwqsoQBQ/oxVMXlDLWJTeNkGS/ ewb7z9VK8Q9Bxnr5fxWILYbhdPrOCrXrLQo0kaepYV51XvSeq6AiddLthADLCXRn LGhnS1do0kqM/84vA9yRTqXecpAcY36AYGUGN9IZCjWm3OcQOGbLl12cP4UNnpWL DYbAbYxvISFUpSA5B2JzBnJQ/QGYNH2AUUHx0Ose66YyJHjvIGPO1V5ENFWAMf7o 9Rwo3U8NK4K5ibXfdScYaH0MH/bDdK81t4nm91lC50cQplhaShFBg03lh712lqex dJNEIjoUZztoDPQGoS4k6XYixnz7hx6G4wZ4CKgVm05gc0gVD7n72Pd/3Tl3+QHU kEfqds1KXWzMsbq91ihh8NrSsjIz7z4N3f0IlOuhyOTwXchT4pOa5g1UoEfS3+ZA 33mRwhQHZ50RrL2gf8T4rUjrukO7U0ZTK61ADNeENNi2DC6NKoPGnq5xasFlCyc5 +tfqH7uzIswLO62BOz5UTJInJzp36cxXRl5zZkc5eM7EpxdgvTHsSdFTOG/Q/t61 2BlT+9XbPWNYO1bisMq/lggqUdGdQmFTWlMJ2WfQCTmPd4qUcF6dzpU79ish3Y14 lWG4l9n/39Kla+CQS0Rr =92nn -----END PGP SIGNATURE----- --Signature=_Mon__5_Jan_2015_15_39_14_+0200_2Xq0.1mSd9ZkkOa_--