All of lore.kernel.org
 help / color / mirror / Atom feed
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 --]

  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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.