From owner-svn-src-all@freebsd.org Wed Dec 4 08:52:01 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 582BF1CDF7B; Wed, 4 Dec 2019 08:52:01 +0000 (UTC) (envelope-from delphij@FreeBSD.org) Received: from smtp.freebsd.org (smtp.freebsd.org [96.47.72.83]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "smtp.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47SXf91h1Kz4bFG; Wed, 4 Dec 2019 08:52:01 +0000 (UTC) (envelope-from delphij@FreeBSD.org) Received: from odin.corp.delphij.net (unknown [IPv6:2601:646:8600:d04a:8df0:d770:7dbf:5d0b]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client did not present a certificate) (Authenticated sender: delphij/mail) by smtp.freebsd.org (Postfix) with ESMTPSA id 8CF966497; Wed, 4 Dec 2019 08:52:00 +0000 (UTC) (envelope-from delphij@FreeBSD.org) To: cem@freebsd.org Cc: src-committers , svn-src-all , svn-src-head References: <201912030703.xB373P5N043316@repo.freebsd.org> From: Xin Li Autocrypt: addr=delphij@FreeBSD.org; prefer-encrypt=mutual; keydata= mQINBFuSR4oBEACvvEgwRIHs6IcSP/yaDtySF78Ji3rP29qdiQsxhMsOtvtffdbS56VApIWO UFb3/iN2gA8HwLvrmjijN0HEoLVX7na1WARmxRYzQMtApsZIUTtx7hnUYlsi2F5odZa6CDW9 a954DLRzYxiUwYDcu5Zjl9bglK1H8e/N9uC0Vuigr4teWfh86brzOyf819QzwFVYfMIK4ihw QGwMvTzbyVuCFy+LENkmcVYni70oQy6rZ5ktSuYbuOFvu7inRRfhSWPHziV7k+bW88sJ7xhv lBlegcnhkSudWX2M8tZ3MO1PJOcyys0CJlsBY5Weiog2lIPi05h/E9pZ9mc1Vud17iqDaL6w RaggOUhuPfDGCdO5ro82W4BZGeQMRnRF5Ntk+t2ShIH4nn3xRLV0E5nziCiKlgiMqOrz/ZTL QTVbHrCuiwD+fSK14y0oHbkOLYTYLlgh1JbwfY2Ty7elOYiWzyeJ7sJh2dF91NSEneWIOys3 mBpuvtU3nSzzTvAB48VV+Nbg1CpIOgNlPjj7uhIum/Z/VjUaJEyaLpTIRh0MVJVcbP7hXSqZ NA35EEZZVnWEOYdycm4CmEdeNPWkrAf2Ya77iR5VLGypwMlsUMQPh+sKVWDD38M8stFGBBNm d01Hi74Bsq5hKan654dOqMt5eYklrVj0ucMzFQtus7oE502UswARAQABtBxYaW4gTEkgPGRl bHBoaWpARnJlZUJTRC5vcmc+iQJXBBMBCgBBAhsDBQkJroQABQsJCAcDBRUKCQgLBRYCAwEA Ah4BAheAFiEEceNg5NEMZIki80nQQHl/fJX0g08FAluSUkoCGQEACgkQQHl/fJX0g08OIxAA pcCm2QCi6IM0o5N5ro5rTodh2rlMuf31TTYBjdf9laZvpnA8a80XBLgx7bxASxH0EOaxcJZk Hl6D0Ex8jcrwOoe9kmbzJ1ZrqBBJBup+mTrf4SwRceSqo6OGHrun8C6kOnq4X62RsvJ9j9nU PqowhXJ4zZHNk9ZXLDzWbrNvYNXxhb+GgK5SniIKMM5Jw/qlMYvxaiIwnS5So+UzIbNsycnk CLbzZxE0d9pe97G3zDvCCwUYoo6LmSx7R20yRnGgO0BlvTPHeWn5WtK1ku3aiarHJW7mRMbD 617GLdc2vuT3bDSd3XwQztgZdiOZkYCdNZVQvuOqMdTtg+phCoQyvEB0+OWoIc/9Cam826nG lazUzURU/FNKJMcxP+1eFI+D/Kl8lpLTtmcjZNbmxeYR2OG6gz7fkyX2D3Is7GEcxuAi6j8f 3OpyFxb9IX4ZsP54/C41bzbcZtQgsU30Ptp/AhJpThHzYHrskfIcLNdmu2ngD5GvrBNX/x4W dO0SgI8tsdY7UQqU9IMWYdkVP8smIUDypMS5x/VZe47afq+VxACOhL0hSixWJDt6Rbl/4iyM EE6Cgu3/YAWQhAK7B97wJj5vPxqdAtPQjkUZGtlTOJWm/NIf4MCYjoHlfan07zatzJ2XF6y6 XcRiCQXULUYpshhY7mXOTSHXZ8n6HB+Z1ri5Ag0EW5JHigEQANiBmIFAfRNH3nzYNWC0yC+t fx3zsUwAsH1VaBM/cTib+yKtbBOSIlXWjJZWX3MHwoI/1LeGghB2mxkkX1L0pJ/vj1eXNR+s FZ320pYcl61Fxg/5fioG4QDTM4i3i7NR5PxDnc6UVaynSlII93DedRhZ1ROtdn4vyMgzsDiq hbL7BthDOt5KxjqdRk4qRPSw7BovEqZLOcG5IJtf/zZUzRbM7SBljEbOAfekDGx1Br+RrYSD 7/EfPwwzou9T8315IpBpIHyQF/dZNk3iFiB9Ed5CA71ZRYV5YoLWE9lL0j9kxOLQ5vHnX3mV q7QZBc7nzwZ6UhQgYmrG5+RWvuiPpGwvDRIsugJUGXucYkAQh5kuNblmkwpv6u9rNMjCNbzA ylOaqdogra5EW+RUSbRz0b4iIr8nnZeAlh7BihCe7JjOwbDjoBEEEtSfVc4hD/LENqpcYVrC hphfaOLB9YIXhnVDTVvMc9OklWT/81HzAaDQqOQCzEfY92199Ct9/CwRoQ2OpO8TO5+8A7b9 Nb33nmxMn09mb48ruRacMrfHxCWbgU4w9SEfbip4GcS5wGG6yTC+hw55Iwnnwus40NrJ0GEr 8a4rcdsLbkvlyoNHB8ZGgyJ4aFCQ1V4qE1BnlTk7Z8BYBUkJM1odPSkVvHpCnMUjVpJ3hEOC +73ZYH1dh7lZABEBAAGJAjwEGAEKACYWIQRx42Dk0QxkiSLzSdBAeX98lfSDTwUCW5JHigIb DAUJCa6EAAAKCRBAeX98lfSDTz8DEACMh3poeUb+gWNF4RWFZuLteZVo0+E1JLYXQkmtrRBL XviP+Qy0pXyFAVxLM4hNIBoIDYfK9BcwrBYf7AwSKrH0GiNwFpgHCkbZd6qoZy2gB+adTnCp VCTJKJetsH/8awkrChJWMK0ckGf3EeWMPvawG7kW7FBz70NYEZ0pOMiaEZNVtzD3wwbYWUiD FYth83XGglOExg+1ShTW5XjQPRrdyJAO+aUW4o3lVjfyUJXMgI4rmhMiLVm06GuNrbpKIF0s +4VdjQAjhrDQjfoXi9CkfsA/cONseuHNv1JGj3RqHiqHJq1dbrpodXp925zGDAnUGxCOBPoF opAHgVzR89GTut059GpwqsddZmU6y7rqifuam/ekJ+QRwc16vgt7pHqCrTY8WPxRZr2UpFU1 wlToCOdeiFep1gq1F9jzFjJnoMaAdmC6k7bgAA+RQusOgIhJL0jIej7DoAHxmxFFCfRy+lDt pXwFgQ8HMvzHI65QWmQnMo7s6SQH/ZH5s1yR6SJq8+3lDz+dCuT42qJVqIPVvxd10LW0FNN+ t7HFeLadU6ekSgD13/EYMYXlvNHkw7dAItSDxIzgRyykLz0bCU9xwNWoS4Z43+ifF9anJ+uR 0ltWEl1j++h6ZrD3LLuCgJIt1so0m49GzdcSpOI7LCwMlacyvafiEyjUn+tSNDsnfw== Organization: The FreeBSD Project Subject: Re: svn commit: r355318 - head/sbin/newfs_msdos Message-ID: <8d49e0b1-fdf1-6c75-b726-7b8f08a61c3a@FreeBSD.org> Date: Wed, 4 Dec 2019 00:51:44 -0800 User-Agent: Thunderbird MIME-Version: 1.0 In-Reply-To: Content-Type: multipart/signed; micalg=pgp-sha512; protocol="application/pgp-signature"; boundary="qwmBSWxsECtDu5gif3uuMlPzpNjTHBDvH" X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 04 Dec 2019 08:52:01 -0000 This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --qwmBSWxsECtDu5gif3uuMlPzpNjTHBDvH Content-Type: multipart/mixed; boundary="fdW2Och1d0YA2mLYR8q5QYqIIuMBz0PBg"; protected-headers="v1" From: Xin Li To: cem@freebsd.org Cc: src-committers , svn-src-all , svn-src-head Message-ID: <8d49e0b1-fdf1-6c75-b726-7b8f08a61c3a@FreeBSD.org> Subject: Re: svn commit: r355318 - head/sbin/newfs_msdos References: <201912030703.xB373P5N043316@repo.freebsd.org> In-Reply-To: --fdW2Och1d0YA2mLYR8q5QYqIIuMBz0PBg Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: quoted-printable On 12/3/19 14:02, Conrad Meyer wrote: > Hi Xin Li, >=20 > Is there a reason to prefer exit() over returning from main? I have No, this should be case-by-case (and also assumes you are using C and not C++). The two are actually subtly different (return means teardown main's stack first, then implicitly call exit from C runtime, while exit() would terminate immediately). If the command is meant to be used as a built-in module of something else, like the case of kill(1) builtin of sh(1), then one must not use exit() and also need to pay special attention to not exit() implicitly, because the caller will not fork() prior to calling the aliased main() function for performance reasons. For other cases, using exit() might be a good idea, because it's easier to find the exit points especially if one is following sysexits(3) values. Another reason is that if one allocates memory in main but not free them (these shouldn't be free'ed because the kernel would unmap all pages upon exit), return would mean these memory would be leaked: these are legitimate issues when main() would be called by someone else. With an explicit exit(), these memory are never leaked because stack frame of main() remains valid before the final _exit(2) call. > not surveyed the source tree, but I suspect most programs in base exit > by returning from main rather than explicit exit(3).> Thanks, > Conrad >=20 > On Mon, Dec 2, 2019 at 11:03 PM Xin LI wrote: >> >> Author: delphij >> Date: Tue Dec 3 07:03:25 2019 >> New Revision: 355318 >> URL: https://svnweb.freebsd.org/changeset/base/355318 >> >> Log: >> Explicitly exit() instead of return in main(). >> >> MFC after: 2 weeks >> >> Modified: >> head/sbin/newfs_msdos/newfs_msdos.c >> >> Modified: head/sbin/newfs_msdos/newfs_msdos.c >> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D >> --- head/sbin/newfs_msdos/newfs_msdos.c Tue Dec 3 07:01:28 2019 = (r355317) >> +++ head/sbin/newfs_msdos/newfs_msdos.c Tue Dec 3 07:03:25 2019 = (r355318) >> @@ -189,7 +189,7 @@ main(int argc, char *argv[]) >> err(1, NULL); >> } >> dtype =3D *argv; >> - return !!mkfs_msdos(fname, dtype, &o); >> + exit(!!mkfs_msdos(fname, dtype, &o)); >> } >> >> /* --fdW2Och1d0YA2mLYR8q5QYqIIuMBz0PBg-- --qwmBSWxsECtDu5gif3uuMlPzpNjTHBDvH Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAEBCgAdFiEEceNg5NEMZIki80nQQHl/fJX0g08FAl3nc64ACgkQQHl/fJX0 g0/W4A/8DQ6KacOn9C2vF6YDUegcsgVRdq3rtLzEr7eMvTh/tsBcUqdSyqJWwIXK 4p9BrG3rFS9YlnuzrW900a5LMAIh9dX9gNqsbrjMP5D7I/QNm702xReLQqDyCrCR M+H1/agpl5UNWTZMJtDJ+BW2K1RJfvOdzeXIDmo1g2t1UysplZeI0n4lE4gZADow CYBMlL02STUfx8QsaH3TAHqAU5cIecl3aTm4uv4lhYBDHIrngJMtQ+R5eCJbZu4g KLySw9GWqnyL+kZNc+sJH/8rec/cSBclbisodgB0fgW5xAguI+DDbvCQj9HbudJ4 1WjoMMfqsaue/kHyZaME9Ysz5SGfRxY+M0RlhNWkGqyQDuwlET5A1vFMdGfolXWf RixWG2UnkDfx8mg7ft4Nz3nfth8jiptBL6pLDJ/mySInT+YLR/PjeB+9WuE+q+A2 JuuLzaHHbIh8R6CZN1CX2t3pxWKr2+mzabFL2/j/pTg0x/yljQYJ7IVyyTtj821P xLyhzrLxa4QdKKwaR0RFZ2/HGTL7JsuV1CEcA3KkN0gDEXPf8wOfDSeMf2Cql8bQ dGeFmFo0rAaACLas4e4HkVe/1mzQF6kio0KcEMpT8TBZ92FXoMvZfvf6I+atKT32 8s2D+KQ8BDMnA2Wg/mqU0SJaAC6LJL4ezJNLKMZavlXiYZ3sEWM= =/7bI -----END PGP SIGNATURE----- --qwmBSWxsECtDu5gif3uuMlPzpNjTHBDvH--