X-Authentication-Warning: delorie.com: mail set sender to djgpp-bounces using -f X-Recipient: djgpp AT delorie DOT com X-Original-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:subject:to:references:message-id:date:user-agent:mime-version :in-reply-to:content-language:content-transfer-encoding; bh=UAwdX5bHHGOOPy2S1lIk5U534Cho6u8OoZTZzF2GDhU=; b=KkNYrTJv1+mvQkwtGdQ3Q3c+Zw/wXjBcHxkJ66U7nWiLBmoRbr7shA+0StNbmGSrv7 i1s6Oq76Pc+52JNSKHGHbwtOeQvJ9VWYQwSTr74ET4LJlTHmmDSZAofeNzCVb+SlfrZS HQF0lKEPGGCaiHMAbnlEG80DRfX7orOabkDVQXH6QtUgiAhM8yBFBGymtxF1+5P6mR/3 1ppi2Mm7vOWIx1gLU5pMrzdb/skJ0w12zVRI6Q91BNWmEiS5H9EJpMl3aH8hMYZqgjrn P8q7rEotBMY3NI0Nl4kDBPviYdHuA3g/MoI6Lr4nZ3Yk/90hLmDPoR2V64tpU09ZWHI2 CP3g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:subject:to:references:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=UAwdX5bHHGOOPy2S1lIk5U534Cho6u8OoZTZzF2GDhU=; b=XyBHZmIRrvRU6kGqipd7P74eXmqqzv78qbuUGjxUbV+HmkX+QvWGHRLMLUYTSbwl1Q tAlvgBaNcAs5i4Bv9wOP7W7KZrrniHU/UH+Tk7TDCHCCcoHI/+3s0h7cNtHFdC8iH6gG 4ISWPdq0zIaLwL4P4Xq2UEvE3sAyDFYZ9jPyB8srbn1+NPUARgv6AENzYP/C1H0NXLHY 73ynVEt3wzwbkgA7E94WnAItTo90P7UXsBbp9bCGIPBA9NBXSYvy4cE1vi6NwaYTDeyA L88vKIlWu6vJQLbV+4ziXzUHF5GrKYLk1gVz8pOOtkJg/TPPFaCFjLL6E3YjX3XFjAfP WQ1g== X-Gm-Message-State: APjAAAV8mWbkt2NrYUDVX3FcTrYQVB8ThLjkOAkVLLzMhmrVN2Yl2T22 t1UIueex/UgN7kem/xt2vxB4D4R9 X-Google-Smtp-Source: APXvYqwWNUOUh1B8IGu+yxPZ6/mjGKgxEOC67+YsGbOngR0LCD+UDD6Apoga2MaVQsGRZTUrpem0rQ== X-Received: by 2002:a2e:9dd7:: with SMTP id x23mr9084934ljj.160.1561103074865; Fri, 21 Jun 2019 00:44:34 -0700 (PDT) From: "Gisle Vanem (gisle DOT vanem AT gmail DOT com) [via djgpp AT delorie DOT com]" Subject: Re: malloc() returns pointer to already allocated memory To: djgpp AT delorie DOT com References: <158e5d20-0a90-4beb-de48-da328379d8fb AT gmail DOT com> <64786234-be30-3862-b2ee-133d2c49fb1a AT gmail DOT com> <19ff3320-4068-663e-ca70-d3e4dc459ba7 AT gmail DOT com> Message-ID: <5038b8a2-cd29-01f8-f825-dead031f8361@gmail.com> Date: Fri, 21 Jun 2019 09:44:34 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:60.0) Gecko/20100101 Thunderbird/60.7.1 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-GB Content-Transfer-Encoding: 7bit Reply-To: djgpp AT delorie DOT com Errors-To: nobody AT delorie DOT com X-Mailing-List: djgpp AT delorie DOT com X-Unsubscribes-To: listserv AT delorie DOT com Precedence: bulk Rod Pemberton wrote: > .. was caused by non-reentrant code being reentered. That could be your > issue as well, e.g., if using hardware or software interrupt routines. ... > Of course, not saving/restoring C/C++ code's in-use registers does much > the same thing. Certain registers must be preserved and can't be > clobbered. These can also be referred to as callee-savee or > caller-saved registers. For DJGPP, my notes say that EBX, EDI, ESI, > EBP, DS, ES, SS registers must preserved. I.e., check your inlined > assembly's clobber list. And the GS, FS registers too. These are *not* preserved in a real-mode callback (RMCB) like '_go32_dpmi_allocate_real_mode_callback_retf()' Not sure about '_dpmi_allocate_real_mode_callback()' Ref: /src/LIBC/GO32/gormcb.c I figured this after similar bugs in the network-driver call-back in Watt-32 tcp/ip stack. I'm not sure how/where FS/GS are used; I suspect a modern gcc uses those in e.g. built-in functions etc. -- --gv