[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: grub2: symlink on reiserfs: error: file not found
From: |
Bean |
Subject: |
Re: grub2: symlink on reiserfs: error: file not found |
Date: |
Tue, 26 Feb 2008 13:37:19 +0800 |
On Tue, Feb 26, 2008 at 3:09 AM, Christian Meyer <address@hidden> wrote:
> Bean <address@hidden> schrieb am 25.02.2008 15:08:56:
>
> >
> > On Mon, Feb 25, 2008 at 7:57 PM, Christian Meyer <address@hidden> wrote:
> > >
>
> > > The diskimage http://www.chbmeyer.de/1.reiserfs.gz has a size of 35 MB
> > > (compressed: 36kb).
> >
>
> > The test file have problem, the link is pointed to /mnt/boot/test
> > instead of /boot/test.
>
> Oh, I'm really sorry about it, too stupid.
> Fixed it with http://www.chbmeyer.de/1.reiserfs.gz
>
> I used the symlink that caused the trouble:
> cp -dp /media/hda3/vmlinuz /mnt/
> and exchanged the kernel by a textfile.
Ok, i found the bug, symbol link name in reiserfs is not null-ended,
so we need to add 0 at the end of string:
diff --git a/fs/reiserfs.c b/fs/reiserfs.c
index a4c60ca..60b6fe2 100644
--- a/fs/reiserfs.c
+++ b/fs/reiserfs.c
@@ -659,7 +659,7 @@ grub_reiserfs_read_symlink (grub_fshelp_node_t node)
>> GRUB_DISK_SECTOR_BITS);
offset = grub_le_to_cpu16 (found.header.item_location);
- symlink_buffer = grub_malloc (len);
+ symlink_buffer = grub_malloc (len + 1);
if (! symlink_buffer)
goto fail;
@@ -667,6 +667,7 @@ grub_reiserfs_read_symlink (grub_fshelp_node_t node)
if (grub_errno)
goto fail;
+ symlink_buffer[len] = 0;
return symlink_buffer;
fail:
--
Bean