From mint-bounce@lists.fishpool.fi Sun Jan 31 08:47:33 2010 Message-ID: <4B65895F.2000904@freesbee.fr> Date: Sun, 31 Jan 2010 14:45:03 +0100 From: =?ISO-8859-1?Q?Vincent_Rivi=E8re?= User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9.1.7) Gecko/20100111 Thunderbird/3.0.1 MIME-Version: 1.0 To: mint@lists.fishpool.fi Subject: [MiNT] opendir() regression Content-Type: multipart/mixed; boundary="------------070903040500080004070002" X-Antivirus: avast! (VPS 100130-1, 30/01/2010), Outbound message X-Antivirus-Status: Clean X-ecartis-version: Ecartis v1.0.0 Sender: mint-bounce@lists.fishpool.fi Errors-to: mint-bounce@lists.fishpool.fi X-original-sender: vincent.riviere@freesbee.fr Precedence: bulk List-help: List-unsubscribe: List-Id: X-List-ID: List-subscribe: List-owner: List-post: This is a multi-part message in MIME format. --------------070903040500080004070002 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: quoted-printable Hello. In order to check GCC is OK, I have just recompiled coreutils-6.9. The pw= d=20 command does not work as expected in a specific case, probably due to a=20 regression in the MiNTLib. Basically: root@easymint:/f>pwd ./pwd: cannot open directory `..': Internal error The kernel: The problem happens only with old kernels and Ozk snapshot, but it works fine with the trunk and Helmut snapshot. The MiNTLib: My old pwd compiled from the same sources with an old CVS MiNTLib works f= ine=20 on every kernel. This supposes that the bug is in the MiNTLib. The current directory and file system: This problems appears only on ARAnyM's hostfs mounts, when the current=20 directory is a hostfs root, like /f. The problem occurs because pwd does always opendir(".."). As a summary, this fails on old and Ozk kernels when the current director= y=20 is an hostfs root. This has probably some relation with Alan's evolutions on directories. See the attached testcase. --=20 Vincent Rivi=E8re --------------070903040500080004070002 Content-Type: text/plain; name="odir.c" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="odir.c" #include #include #include int main(void) { DIR* dirp = opendir(".."); if (!dirp) { fprintf(stderr, "error: %s\n", strerror(errno)); return 1; } puts("OK"); return 0; } --------------070903040500080004070002--