Fix hdestroy() compliance issue.
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. 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. Bump the __FreeBSD_version as this is an ABI change. Reference: http://bugs.dragonflybsd.org/issues/1398 MFC after: 2 weeks
This commit is contained in:
parent
5221e95288
commit
f94ef3a29c
@ -159,7 +159,6 @@ hdestroy_r(struct hsearch_data *head)
|
||||
while (!SLIST_EMPTY(&table[idx])) {
|
||||
ie = SLIST_FIRST(&table[idx]);
|
||||
SLIST_REMOVE_HEAD(&table[idx], link);
|
||||
free(ie->ent.key);
|
||||
free(ie);
|
||||
}
|
||||
}
|
||||
|
@ -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 */
|
||||
|
||||
/*
|
||||
* __FreeBSD_kernel__ indicates that this system uses the kernel of FreeBSD,
|
||||
|
Loading…
x
Reference in New Issue
Block a user