bug-patch
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[bug-patch] [PATCH] Do not rely on PATH_MAX when reading a symlink targe


From: Ludovic Courtès
Subject: [bug-patch] [PATCH] Do not rely on PATH_MAX when reading a symlink target.
Date: Mon, 08 Jun 2015 17:44:22 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.5 (gnu/linux)

The attached patch fixes compilation on GNU/Hurd.

Ludo’.

>From 3cab3e40166bfb549ca3ee2a1f20df9f82842d08 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= <address@hidden>
Date: Mon, 8 Jun 2015 17:27:56 +0200
Subject: [PATCH] Do not rely on PATH_MAX when reading a symlink target.

* src/util.c (move_file): Use 'fromst->st_size + 1' for the allocation,
  and 'fromst->st_size' instead of PATH_MAX.  Fixes compilation
  on GNU/Hurd.
---
 src/util.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/util.c b/src/util.c
index 82a7e37..e061f09 100644
--- a/src/util.c
+++ b/src/util.c
@@ -460,12 +460,12 @@ move_file (char const *from, bool *from_needs_removal,
 
          /* FROM contains the contents of the symlink we have patched; need
             to convert that back into a symlink. */
-         char *buffer = xmalloc (PATH_MAX);
+         char *buffer = xmalloc (fromst->st_size + 1);
          int fd, size = 0, i;
 
          if ((fd = safe_open (from, O_RDONLY | O_BINARY, 0)) < 0)
            pfatal ("Can't reopen file %s", quotearg (from));
-         while ((i = read (fd, buffer + size, PATH_MAX - size)) > 0)
+         while ((i = read (fd, buffer + size, fromst->st_size - size)) > 0)
            size += i;
          if (i != 0 || close (fd) != 0)
            read_fatal ();
-- 
2.2.1


reply via email to

[Prev in Thread] Current Thread [Next in Thread]