From mboxrd@z Thu Jan 1 00:00:00 1970 X-Msuck: nntp://news.gmane.org/gmane.linux.lib.musl.general/12484 Path: news.gmane.org!.POSTED!not-for-mail From: Roman Yeryomin Newsgroups: gmane.linux.lib.musl.general Subject: [RFC] malloc + threads = memleak? Date: Fri, 9 Feb 2018 16:33:38 +0200 Message-ID: Reply-To: musl@lists.openwall.com NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="94eb2c0955a00fd2c90564c86a77" X-Trace: blaine.gmane.org 1518186716 21129 195.159.176.226 (9 Feb 2018 14:31:56 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Fri, 9 Feb 2018 14:31:56 +0000 (UTC) To: musl Original-X-From: musl-return-12500-gllmg-musl=m.gmane.org@lists.openwall.com Fri Feb 09 15:31:52 2018 Return-path: Envelope-to: gllmg-musl@m.gmane.org Original-Received: from mother.openwall.net ([195.42.179.200]) by blaine.gmane.org with smtp (Exim 4.84_2) (envelope-from ) id 1ek9iQ-00054n-4B for gllmg-musl@m.gmane.org; Fri, 09 Feb 2018 15:31:50 +0100 Original-Received: (qmail 9886 invoked by uid 550); 9 Feb 2018 14:33:52 -0000 Mailing-List: contact musl-help@lists.openwall.com; run by ezmlm Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-ID: Original-Received: (qmail 9847 invoked from network); 9 Feb 2018 14:33:51 -0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ubnt.com; s=google; h=mime-version:from:date:message-id:subject:to; bh=jfp/tFvYSsvN/CgbX08NH8MjtSjgMu1Ny2bQyH0JLFo=; b=LT3b9Hbgq1Mc+J99mub8OWqWr3XQ0uMDgosV+dowuiPKfEUROhv8cTrwUpzSKnJoAa 8fwgJ85uc70Y1btv2ljGdC+hvI4obWMQ6VuvwMfcncdVUXJDrZTmQJcOqXA8/6nUeAB1 hP47tKIkbUTG3ulDAtPzDAk3WeNQOa21jFlzI= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=jfp/tFvYSsvN/CgbX08NH8MjtSjgMu1Ny2bQyH0JLFo=; b=YgIoDA6nw2HwpifHnJS8oDcifbLJBYSULHK50M9ulJGlTxLEp4tRpLDDIv7vzH2RC1 F2eqR5dBDyxNrN/HBOC4hdLRcI/6PAfewfxuNzLSAVp7yFCaYXUb8iTeHsZTv+OcQ+Ms IUYtoesfRyt+m1/MQPJFusUNIrFkuV2CV7zSZ1A/H/wCkOCCB2kcFjfuiw75NxbRcw9Q mxxxNJqmvL840BQ+Q6jyyWtRkv8fIt6Ldx8O/x+dtDUMhv630wsTPXKhyfxS6qBGhN09 cn04ndoDZD3HEer7RenQT5XiKYu/94DPfz8mBybC3TElmbhiJ/J8MqAJVJUQOmdAl5lV EEnQ== X-Gm-Message-State: APf1xPAuiwQ1RFZm2ioV4fXBC7E/uR/aOSyiO+McWgRLaDe1gXYPHzm4 iU/NVKAFKbvAWWTFa33Qs6xIjMEXPXOCy1dRAufzqcdnj8o= X-Google-Smtp-Source: AH8x227EuURp/qNY7x5FSdBQiOglanl6sk0Gd/q4knz2Nrj37RctX3ovZLvFANwExXGpkPp4vzxVMOzRXY8lmGbJH1U= X-Received: by 10.31.236.195 with SMTP id k186mr2596137vkh.142.1518186819183; Fri, 09 Feb 2018 06:33:39 -0800 (PST) Xref: news.gmane.org gmane.linux.lib.musl.general:12484 Archived-At: --94eb2c0955a00fd2c90564c86a77 Content-Type: text/plain; charset="UTF-8" Hello! I have a very easy reproducible memory leak here when using malloc/free in two threads. Attaching a simple test. thread() here is calling pthread_create(): https://github.com/yeryomin/liba/blob/master/liba.c#L181 Do I misunderstand something or is it a bug? This can be avoided by wrapping malloc into locks but not sure if that's the fix you want... Regards, Roman --94eb2c0955a00fd2c90564c86a77 Content-Type: text/x-csrc; charset="US-ASCII"; name="musl-test.c" Content-Disposition: attachment; filename="musl-test.c" Content-Transfer-Encoding: base64 X-Attachment-Id: f_jdg0l3il0 I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KI2luY2x1ZGUgPHN0cmluZy5o PgojaW5jbHVkZSA8c3lzbG9nLmg+CiNpbmNsdWRlIDx1bmlzdGQuaD4KI2luY2x1ZGUgPHNpZ25h bC5oPgojaW5jbHVkZSA8dGltZS5oPgoKI2luY2x1ZGUgPGxpYmEuaD4KCiNkZWZpbmUgUElEUEFU SAkJIi90bXAiCiNkZWZpbmUgTkFNRQkJYXJndlswXQojZGVmaW5lIFRJTUVSCQkzMAoKI2RlZmlu ZSBTSVpFCQkxMDAwMAoKaW50IHRpbWVyID0gVElNRVI7CmludCBjb3VudGVyID0gMDsKCnZvaWQg dGhyZWFkNDIoIGludCAqdGhyICkKewoJaW50IGk7Cgl2b2lkKiBhbGxvY3NbU0laRV07CgoJd2hp bGUgKDEpIHsKCQlmb3IgKCBpID0gMDsgaSA8IFNJWkU7IGkrKyApCgkJCWFsbG9jc1tpXSA9IG1h bGxvYygxNTAwKTsKCQkKCQlzeXNsb2coIExPR19JTkZPLCAiJWk6ICVsZFxuIiwgKnRociwgdGlt ZShOVUxMKSApOwoKCQlmb3IgKCBpID0gMDsgaSA8IFNJWkU7IGkrKyApCgkJCWZyZWUoYWxsb2Nz W2ldKTsKCX0KfQoKdm9pZCByZXNldF90aW1lciggaW50IHNpZyApCnsKCS8qIHRlbXBvcmFyaWx5 IGluZ25vcmUgaW50ZXJydXB0cyAqLwoJc2lnbmFsKCBzaWcsIFNJR19JR04gKTsKCWNvdW50ZXIr KzsKCXN5c2xvZyggTE9HX0lORk8sICIlaSBIVVAgcmVjZWl2ZWQsIHJlc2V0dGluZyB0aW1lciAo d2FzICVpKS4uLiIsCgkJCQljb3VudGVyLCB0aW1lciApOwoJdGltZXIgPSBUSU1FUjsKCS8qIHJl ZW5hYmxlIGludGVycnVwdCAqLwoJYV9zaWduYWwoIHNpZywgcmVzZXRfdGltZXIgKTsKfQoKaW50 IG1haW4oIGludCBhcmdjLCBjaGFyICoqYXJndiApCnsKCWludCBwaWQgPSBkYWVtb25pemUoIFBJ RFBBVEgsIE5BTUUgKTsKCWludCB0aHIxID0gMTsKCWludCB0aHIyID0gMjsKCgkvKiByZWdpc3Rl ciBzaWdodXAgaGFuZGxlciBmb3IgZGFlbW9uICovCglhX3NpZ25hbCggU0lHSFVQLCByZXNldF90 aW1lciApOwoKCS8qIHN0YXJ0IHR3byBtYWxsb2MgdGhyZWFkcyAqLwoJdGhyZWFkKCAidGhyZWFk NDItMSIsICZ0aHJlYWQ0MiwgJnRocjEgKTsKCXRocmVhZCggInRocmVhZDQyLTIiLCAmdGhyZWFk NDIsICZ0aHIyICk7CgoJLyogZGFlbW9uIHN0dWZmICovCglzeXNsb2coIExPR19JTkZPLCAiV29y a2luZyBoYXJkLi4uIiApOwoJd2hpbGUgKCB0aW1lciA+IDAgKSB7CgkJc2xlZXAoMSk7CgkJdGlt ZXItLTsKCQlpZiAoIHRpbWVyIDwgNSApCgkJCXN5c2xvZyggTE9HX0lORk8sICJEeWluZyBpbiAl aS4uLiIsIHRpbWVyICsgMSApOwoJfQoKCS8qIGNsZWFudXAsIGlmIGV2ZXIgZ2V0IGhlcmUgKi8K CXN5c2xvZyggTE9HX0lORk8sICJFeGl0aW5nICVzICglaSkuLi4iLCBhX2RhZW1vbl9uYW1lLCBw aWQgKTsKCXVubGluayggYV9kYWVtb25fcGlkZmlsZSApOwoJZXhpdChFWElUX1NVQ0NFU1MpOwp9 Cg== --94eb2c0955a00fd2c90564c86a77--