From: "Vladimir 'φ-coder/phcoder' Serbinenko" <phcoder@gmail.com>
To: grub-devel@gnu.org
Subject: Re: grub2 boot root-on-zfs errors
Date: Fri, 22 Nov 2013 14:30:28 +0100 [thread overview]
Message-ID: <528F5C74.5080006@gmail.com> (raw)
In-Reply-To: <20131122131652.GA19341@riva.ucam.org>
[-- Attachment #1: Type: text/plain, Size: 2073 bytes --]
On 22.11.2013 14:16, Colin Watson wrote:
> On Fri, Nov 22, 2013 at 08:30:14AM +0100, Vladimir 'φ-coder/phcoder' Serbinenko wrote:
>> On 22.11.2013 08:09, Beeblebrox wrote:
>>> grub-core/osdep/unix/platform.c:34:28: error: use of undeclared
>>> identifier 'PATH_MAX'
>>> char *ret = xmalloc (2 * PATH_MAX);
>> Please try
>> diff --git a/grub-core/osdep/unix/platform.c
>> b/grub-core/osdep/unix/platform.c
>> index 65c93f1..a527a1c 100644
>> --- a/grub-core/osdep/unix/platform.c
>> +++ b/grub-core/osdep/unix/platform.c
>> @@ -27,6 +27,7 @@
>> #include <dirent.h>
>> #include <string.h>
>> #include <errno.h>
>> +#include <limits.h>
>>
>> static char *
>> get_ofpathname (const char *dev)
>>
>
> This will not be sufficient to build on GNU/Hurd (get_ofpathname isn't
> directly relevant to that platform, but that function will be compiled
> there anyway). We need to avoid the use of PATH_MAX entirely, per:
>
> https://www.gnu.org/software/hurd/hurd/porting/guidelines.html
>
Sth like
diff --git a/grub-core/osdep/unix/platform.c b/grub-core/osdep/unix/platform.c
index 65c93f1..684c325 100644
--- a/grub-core/osdep/unix/platform.c
+++ b/grub-core/osdep/unix/platform.c
@@ -31,11 +31,11 @@
static char *
get_ofpathname (const char *dev)
{
- char *ret = xmalloc (2 * PATH_MAX);
- char *end = ret + 2 * PATH_MAX - 1;
+ size_t alloced = 4096;
+ char *ret = xmalloc (alloced);
+ size_t offset = 0;
int fd;
pid_t pid;
- char *ptr = ret;
pid = grub_util_exec_pipe ((const char * []){ "ofpathname", dev, NULL }, &fd);
if (!pid)
@@ -45,11 +45,16 @@ get_ofpathname (const char *dev)
if (!fp)
goto fail;
- while (!feof (fp) && ptr < end)
+ while (!feof (fp))
{
size_t r;
- r = fread (ptr, 1, end - ptr, fp);
- ptr += r;
+ if (alloced == offset)
+ {
+ alloced *= 2;
+ ret = xrealloc (ret, alloced);
+ }
+ r = fread (ret + offset, 1, alloced - offset, fp);
+ offset += r;
}
fclose (fp);
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 291 bytes --]
next prev parent reply other threads:[~2013-11-22 13:30 UTC|newest]
Thread overview: 60+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-11-22 7:09 grub2 boot root-on-zfs errors Beeblebrox
2013-11-22 7:25 ` Vladimir 'φ-coder/phcoder' Serbinenko
2013-11-22 7:30 ` Vladimir 'φ-coder/phcoder' Serbinenko
2013-11-22 13:16 ` Colin Watson
2013-11-22 13:30 ` Vladimir 'φ-coder/phcoder' Serbinenko [this message]
2013-11-25 16:54 ` Colin Watson
-- strict thread matches above, loose matches on Subject: below --
2013-11-24 9:14 Beeblebrox
2013-11-24 15:08 ` Andrey Borzenkov
2013-11-25 11:08 ` Beeblebrox
2013-11-25 11:14 ` Vladimir 'φ-coder/phcoder' Serbinenko
2013-11-25 17:29 ` Andrey Borzenkov
2013-11-25 22:12 ` Vladimir 'phcoder' Serbinenko
2013-11-10 17:50 Beeblebrox
2013-11-10 19:06 ` Vladimir 'φ-coder/phcoder' Serbinenko
[not found] ` <CAPSTskuZ2nHt6iKHfgFfWeBxpRyuqPmyXHd3AYCr1muaua+H7w@mail.gmail.com>
2013-11-22 15:22 ` Beeblebrox
2013-11-22 17:01 ` Beeblebrox
2013-11-23 1:09 ` Vladimir 'φ-coder/phcoder' Serbinenko
2013-11-23 12:54 ` Beeblebrox
2013-11-23 13:10 ` Vladimir 'φ-coder/phcoder' Serbinenko
2013-11-23 13:50 ` Beeblebrox
2013-11-23 17:58 ` Beeblebrox
2013-11-04 6:13 Beeblebrox
2013-11-05 7:35 ` Beeblebrox
2013-11-05 8:49 ` Vladimir 'φ-coder/phcoder' Serbinenko
2013-11-05 9:43 ` Beeblebrox
2013-11-09 15:31 ` Beeblebrox
2013-11-09 15:37 ` Vladimir 'φ-coder/phcoder' Serbinenko
2013-11-10 10:28 ` Beeblebrox
2013-11-10 10:41 ` Andrey Borzenkov
2013-11-10 14:47 ` Vladimir 'φ-coder/phcoder' Serbinenko
2013-11-10 12:08 ` Vladimir 'φ-coder/phcoder' Serbinenko
2013-11-08 14:12 ` Vladimir 'φ-coder/phcoder' Serbinenko
2013-10-31 10:37 Beeblebrox
2013-10-31 11:40 ` Beeblebrox
2013-10-31 16:24 ` Andrey Borzenkov
2013-10-31 16:36 ` Beeblebrox
2013-10-31 17:32 ` Andrey Borzenkov
2013-10-31 18:04 ` Beeblebrox
2013-11-02 7:58 ` Beeblebrox
2013-11-02 14:55 ` Vladimir 'φ-coder/phcoder' Serbinenko
2013-10-31 19:06 ` Vladimir 'φ-coder/phcoder' Serbinenko
2013-09-28 11:56 Beeblebrox
2013-09-28 14:42 ` Vladimir 'φ-coder/phcoder' Serbinenko
2013-09-28 8:48 Beeblebrox
2013-09-28 11:06 ` Andrey Borzenkov
2013-09-25 6:58 Beeblebrox
2013-09-25 8:06 ` Andrey Borzenkov
2013-09-25 10:33 ` Vladimir 'φ-coder/phcoder' Serbinenko
2013-09-23 18:59 Beeblebrox
2013-09-23 19:24 ` Massimo Maggi
2013-09-23 19:28 ` Vladimir 'φ-coder/phcoder' Serbinenko
2013-09-24 3:56 ` Andrey Borzenkov
2013-09-24 11:01 ` Andrey Borzenkov
2013-09-24 11:12 ` Vladimir 'φ-coder/phcoder' Serbinenko
2013-09-24 15:49 ` Beeblebrox
2013-09-24 16:01 ` Andrey Borzenkov
2013-09-24 16:11 ` Vladimir 'φ-coder/phcoder' Serbinenko
2013-08-30 7:23 Raif S. Berent
2013-09-05 7:31 ` Beeblebrox
2013-09-23 9:09 ` Vladimir 'φ-coder/phcoder' Serbinenko
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=528F5C74.5080006@gmail.com \
--to=phcoder@gmail.com \
--cc=grub-devel@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).