Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 23 Jul 2014 20:22:45 +0300
From:      Konstantin Belousov <kostikbel@gmail.com>
To:        "Pedro F. Giffuni" <pfg@FreeBSD.org>
Cc:        svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org
Subject:   Re: svn commit: r268945 - in head: lib/libc/stdlib sys/sys
Message-ID:  <20140723172245.GJ93733@kib.kiev.ua>
In-Reply-To: <201407211544.s6LFixKa093406@svn.freebsd.org>
References:  <201407211544.s6LFixKa093406@svn.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help

--bBEFi9hJwHdAKtec
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On Mon, Jul 21, 2014 at 03:44:59PM +0000, Pedro F. Giffuni wrote:
> Author: pfg
> Date: Mon Jul 21 15:44:59 2014
> New Revision: 268945
> URL: http://svnweb.freebsd.org/changeset/base/268945
>=20
> Log:
>   Fix hdestroy() compliance issue.
>  =20
>   The hcreate(3) implementation and related functions we inherited
>   from NetBSD used to free() the key value, something that is not
>   supported by the standard implementation.
>  =20
>   This would cause a segmentation fault when attempting to run
>   the examples from the opengroup and linux manpages.  NetBSD
>   has added non-standard calls to provide the previous
>   behaviour but hdestroy is not very commonly used so at this
>   time it seems excessive to bring those to FreeBSD.
>  =20
>   Bump the __FreeBSD_version as this is an ABI change.
>  =20
>   Reference:
>   http://bugs.dragonflybsd.org/issues/1398
>  =20
>   MFC after:	2 weeks
>=20
> Modified:
>   head/lib/libc/stdlib/hcreate.c
>   head/sys/sys/param.h
>=20
> Modified: head/lib/libc/stdlib/hcreate.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/lib/libc/stdlib/hcreate.c	Mon Jul 21 15:26:52 2014	(r268944)
> +++ head/lib/libc/stdlib/hcreate.c	Mon Jul 21 15:44:59 2014	(r268945)
> @@ -159,7 +159,6 @@ hdestroy_r(struct hsearch_data *head)
>  		while (!SLIST_EMPTY(&table[idx])) {
>  			ie =3D SLIST_FIRST(&table[idx]);
>  			SLIST_REMOVE_HEAD(&table[idx], link);
> -			free(ie->ent.key);
>  			free(ie);
>  		}
>  	}
>=20
> Modified: head/sys/sys/param.h
> =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/sys/sys/param.h	Mon Jul 21 15:26:52 2014	(r268944)
> +++ head/sys/sys/param.h	Mon Jul 21 15:44:59 2014	(r268945)
> @@ -58,7 +58,7 @@
>   *		in the range 5 to 9.
>   */
>  #undef __FreeBSD_version
> -#define __FreeBSD_version 1100027	/* Master, propagated to newvers */
> +#define __FreeBSD_version 1100028	/* Master, propagated to newvers */
> =20
>  /*
>   * __FreeBSD_kernel__ indicates that this system uses the kernel of Free=
BSD,
You broke the ABI.  This is absolute stopper for the symversioned
fundamental library.

The right thing to do is to introduce a new version of hcreate() for FBSD_1=
=2E4,
and provide compat shims with the old behaviour for FBSD_1.0.

--bBEFi9hJwHdAKtec
Content-Type: application/pgp-signature

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2

iQIcBAEBAgAGBQJTz+9kAAoJEJDCuSvBvK1BqFgP/1/mkMihsHfv5MLaU8jcTTdn
x0T+tvMWSvnwSuGINHPaabBNjxCqUSmWtCqOOUXSGB/yWs8el93hRC5i6JoRdgPr
z4RxEAtPW9F9P5ahKNIDdgBFi6WaxSlAWUJlz+mgXJMCSUcGkxANP3vW/zxcP9u3
PUG44pqv3BV7gM+0nxoqZkUEwh7a3fCzYO/jqYElonmIhpUJ+Dig1irXQ+AyDywD
6HEIMHgvobVrD7wr+Eb0y5MhVpznwGWOZzvbex7QWATt2Az7Sb72pmypDRiMG35Z
AojAIOrGSQLOSv11t6rv++ksK9xEREjCHLDe+Sn6p1hnnDmn3CVWsKx8fNLF5yjp
aa7P+j+3et5rgyeK9ZbD9BKZFXXGmo82f6wTFHPGNBnNHfFZtUSr1jjj8Z3hEF14
Q/hAtRZ2MTH7BYjJtCHxKYiJSgrvPvtJePX2fl9E2KSYpHY51xl4seb+OFMcn8V5
2DbQGryyiy6j/H1fQ9bVsjkgziXIQrSuTZkaVJKxCqrAG98UYLNsNaM+OSFsHjbV
k8fkVCrfYj7IXRRflvXVxdallsM7rv4Hp9ZiLnolCjbQt5egx3PAfffsKe20Idei
yKAOARPIHjEEwXzC+pHodwpf+SLiBExfxTS/0z3iF3DxdBMrIaoivgDGeFcC6Ggf
Dh+qZhVj4h1GDabvac24
=BmN1
-----END PGP SIGNATURE-----

--bBEFi9hJwHdAKtec--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20140723172245.GJ93733>