--===============1896960571==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
New submission from Stathis Kamperis <ekamperi@gmail.com>:
Salute.
hdestroy(3) frees the memory pointed to by the hash key. In other words it
expects the user to always have malloc()'ed rather than used static allocat=
ion
for the hash key. This doesn't apply to the data associated with the key.
Although POSIX standard doesn't say much on this particular topic:
1) This is unnecessarily restrictive. If the user wants static allocation, =
we
should allow this. If she wants dynamic then let *her* free the memory she
malloc()'ed.
2) It is in conflict with the example code in the POSIX page. The code=20
segfaults if you add an hdestroy() call in the end of it.
3) Programs that target other implementations may segfault in DragonFly (th=
at's
how I discovered it). AFAIK sunOS 5.10 and a recent glibc work fine, wherea=
s
{Net, Free, DragonFly}BSD all are affected because they share the same code=
..
(One could argue that all programs written with the *BSD version in mind wo=
uld
result in a memory leak. But still I think these programs (if any) should b=
e fixed.)
Any thoughts ?
Cheers,
Stathis
----------
assignedto: Beket
files: 0001-hdestroy-3-Don-t-call-free-3-for-each-hash-key.patch
messages: 6736
nosy: Beket
status: unread
title: hdestroy(3) restricts hash key to point to malloc'ed space
_____________________________________________________
DragonFly issue tracker <bugs@lists.dragonflybsd.org>
<http://bugs.dragonflybsd.org/issue1398>
_____________________________________________________
--===============1896960571==
Content-Type: application/octet-stream
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
filename="0001-hdestroy-3-Don-t-call-free-3-for-each-hash-key.patch"
RnJvbSA5YTU3ZWM1YmUwNjM1MDMwNzM5ZGJiYjY5MzI3YWJlMmJjNWFiNmM2IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBTdGF0aGlzIEthbXBlcmlzIDxiZWtldEBkcmFnb25mbHlic2Qu
b3JnPgpEYXRlOiBXZWQsIDEwIEp1biAyMDA5IDIxOjQ0OjAxICswMzAwClN1YmplY3Q6IFtQQVRD
SF0gaGRlc3Ryb3koMyk6IERvbid0IGNhbGwgZnJlZSgzKSBmb3IgZWFjaCBoYXNoIGtleS4KCiog
VGhpcyBpcyB1bm5lY2Vzc2FyaWx5IHJlc3RyaWN0aXZlLiBJZiB0aGUgdXNlciB3YW50cyBzdGF0
aWMgYWxsb2NhdGlvbiwKd2Ugc2hvdWxkIGFsbG93IHRoaXMuIElmIHNoZSB3YW50cyBkeW5hbWlj
IHRoZW4gbGV0ICpoZXIqIGZyZWUgdGhlIG1lbW9yeSBzaGUKbWFsbG9jKCknZWQuCgoqIEl0IGlz
IGluIGNvbmZsaWN0IHdpdGggdGhlIGV4YW1wbGUgY29kZSBpbiB0aGUgUE9TSVggcGFnZS4gVGhl
IGNvZGUgIHNlZ2ZhdWx0cwppZiB5b3UgYWRkIGFuIGhkZXN0cm95KCkgY2FsbCBpbiB0aGUgZW5k
IG9mIGl0LgoKKiBQcm9ncmFtcyB0aGF0IHRhcmdldCBvdGhlciBpbXBsZW1lbnRhdGlvbnMgbWF5
IHNlZ2ZhdWx0IGluIERyYWdvbkZseS4gQUZBSUsKc3VuT1MgNS4xMCBhbmQgYSByZWNlbnQgZ2xp
YmMgd29yayBmaW5lLCB3aGVyZWFzIHtOZXQsIEZyZWUsIERyYWdvbkZseX1CU0QgYWxsCmFyZSBh
ZmZlY3RlZCBiZWNhdXNlIHRoZXkgc2hhcmUgdGhlIHNhbWUgY29kZS4KLS0tCiBsaWIvbGliYy9z
dGRsaWIvaGNyZWF0ZS4zIHwgICAyMiArLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBsaWIvbGliYy9z
dGRsaWIvaGNyZWF0ZS5jIHwgICAgMSAtCiAyIGZpbGVzIGNoYW5nZWQsIDEgaW5zZXJ0aW9ucygr
KSwgMjIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbGliL2xpYmMvc3RkbGliL2hjcmVhdGUu
MyBiL2xpYi9saWJjL3N0ZGxpYi9oY3JlYXRlLjMKaW5kZXggY2ZhNTk5MS4uNmYzMmQ1MSAxMDA2
NDQKLS0tIGEvbGliL2xpYmMvc3RkbGliL2hjcmVhdGUuMworKysgYi9saWIvbGliYy9zdGRsaWIv
aGNyZWF0ZS4zCkBAIC0yOSw3ICsyOSw3IEBACiAuXCIgJEZyZWVCU0Q6IHNyYy9saWIvbGliYy9z
dGRsaWIvaGNyZWF0ZS4zLHYgMS43IDIwMDgvMDcvMDYgMTc6MDM6MzcgZGFuZ2VyIEV4cCAkCiAu
XCIgJERyYWdvbkZseTogc3JjL2xpYi9saWJjL3N0ZGxpYi9oY3JlYXRlLjMsdiAxLjUgMjAwNi8w
NS8yNiAxOTozOTozNyBzd2lsZG5lciBFeHAgJAogLlwiCi0uRGQgSnVseSA2LCAyMDA4CisuRGQg
SnVuZSAxMCwgMjAwOQogLk9zCiAuRHQgSENSRUFURSAzCiAuU2ggTkFNRQpAQCAtNzUsMTIgKzc1
LDYgQEAgZnVuY3Rpb24gZGlzcG9zZXMgb2YgdGhlIHNlYXJjaCB0YWJsZSwgYW5kIG1heSBiZSBm
b2xsb3dlZCBieSBhbm90aGVyIGNhbGwgdG8KIEFmdGVyIHRoZSBjYWxsIHRvCiAuRm4gaGRlc3Ry
b3kgLAogdGhlIGRhdGEgY2FuIG5vIGxvbmdlciBiZSBjb25zaWRlcmVkIGFjY2Vzc2libGUuCi1U
aGUKLS5GbiBoZGVzdHJveQotZnVuY3Rpb24gY2FsbHMKLS5YciBmcmVlIDMKLWZvciBlYWNoIGNv
bXBhcmlzb24ga2V5IGluIHRoZSBzZWFyY2ggdGFibGUKLWJ1dCBub3QgdGhlIGRhdGEgaXRlbSBh
c3NvY2lhdGVkIHdpdGggdGhlIGtleS4KIC5QcAogVGhlCiAuRm4gaHNlYXJjaApAQCAtMTI1LDIw
ICsxMTksNiBAQCBVbnN1Y2Nlc3NmdWwgcmVzb2x1dGlvbiBpcwogaW5kaWNhdGVkIGJ5IHRoZSBy
ZXR1cm4gb2YgYQogLkR2IE5VTEwKIHBvaW50ZXIuCi0uUHAKLVRoZSBjb21wYXJpc29uIGtleSAo
cGFzc2VkIHRvCi0uRm4gaHNlYXJjaAotYXMKLS5GYSBpdGVtLmtleSApCi1tdXN0IGJlIGFsbG9j
YXRlZCB1c2luZwotLlhyIG1hbGxvYyAzCi1pZgotLkZhIGFjdGlvbgotaXMKLS5EdiBFTlRFUgot
YW5kCi0uRm4gaGRlc3Ryb3kKLWlzIGNhbGxlZC4KIC5TaCBSRVRVUk4gVkFMVUVTCiBUaGUKIC5G
biBoY3JlYXRlCmRpZmYgLS1naXQgYS9saWIvbGliYy9zdGRsaWIvaGNyZWF0ZS5jIGIvbGliL2xp
YmMvc3RkbGliL2hjcmVhdGUuYwppbmRleCAyZDU0MmU4Li5lY2JiNDgzIDEwMDY0NAotLS0gYS9s
aWIvbGliYy9zdGRsaWIvaGNyZWF0ZS5jCisrKyBiL2xpYi9saWJjL3N0ZGxpYi9oY3JlYXRlLmMK
QEAgLTEzNiw3ICsxMzYsNiBAQCBoZGVzdHJveSh2b2lkKQogCQl3aGlsZSAoIVNMSVNUX0VNUFRZ
KCZodGFibGVbaWR4XSkpIHsKIAkJCWllID0gU0xJU1RfRklSU1QoJmh0YWJsZVtpZHhdKTsKIAkJ
CVNMSVNUX1JFTU9WRV9IRUFEKCZodGFibGVbaWR4XSwgbGluayk7Ci0JCQlmcmVlKGllLT5lbnQu
a2V5KTsKIAkJCWZyZWUoaWUpOwogCQl9CiAJfQotLSAKMS42LjAuMgoK
--===============1896960571==--