看板 DFBSD_bugs 關於我們 聯絡資訊
--===============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==--