forked from pool/bindfs
Add bindfs-06-fix-short-alloc.diff
OBS-URL: https://build.opensuse.org/package/show/filesystems/bindfs?expand=0&rev=6
This commit is contained in:
parent
d0afc12d45
commit
0bfb2c45c3
44
bindfs-06-fix-short-alloc.diff
Normal file
44
bindfs-06-fix-short-alloc.diff
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
parent cb9540a5b8dcc6640e39fe9cc948d385bfa82664 ()
|
||||||
|
commit 6feab338aed1ad390ba4b0042f0490c7e317c7e3
|
||||||
|
Author: Jan Engelhardt <jengelh@inai.de>
|
||||||
|
Date: Tue Jul 3 03:28:50 2012 +0200
|
||||||
|
|
||||||
|
bindfs: avoid crash due to too-short allocation
|
||||||
|
|
||||||
|
pathconf() can return negative values to indicate an error. Using the
|
||||||
|
result of pathconf naïvely in arithmetic is therefore inappropriate.
|
||||||
|
---
|
||||||
|
src/bindfs.c | 11 ++++++++---
|
||||||
|
1 files changed, 8 insertions(+), 3 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/src/bindfs.c b/src/bindfs.c
|
||||||
|
index ded13be..48b732c 100644
|
||||||
|
--- a/src/bindfs.c
|
||||||
|
+++ b/src/bindfs.c
|
||||||
|
@@ -54,6 +54,7 @@
|
||||||
|
#include <assert.h>
|
||||||
|
#include <pwd.h>
|
||||||
|
#include <grp.h>
|
||||||
|
+#include <limits.h>
|
||||||
|
#ifdef HAVE_SETXATTR
|
||||||
|
#include <sys/xattr.h>
|
||||||
|
#endif
|
||||||
|
@@ -399,9 +400,13 @@ static int bindfs_readdir(const char *path, void *buf, fuse_fill_dir_t filler,
|
||||||
|
struct dirent *de;
|
||||||
|
struct stat st;
|
||||||
|
int result = 0;
|
||||||
|
-
|
||||||
|
- de_buf = malloc(offsetof(struct dirent, d_name) + pathconf(path, _PC_NAME_MAX) + 1);
|
||||||
|
-
|
||||||
|
+ long pc_ret;
|
||||||
|
+
|
||||||
|
+ pc_ret = pathconf(path, _PC_NAME_MAX);
|
||||||
|
+ if (pc_ret < 0)
|
||||||
|
+ pc_ret = NAME_MAX; /* or scream and abort()? */
|
||||||
|
+ de_buf = malloc(offsetof(struct dirent, d_name) + pc_ret + 1);
|
||||||
|
+
|
||||||
|
seekdir(dp, offset);
|
||||||
|
while (1) {
|
||||||
|
result = readdir_r(dp, de_buf, &de);
|
||||||
|
--
|
||||||
|
# Created with git-export-patch
|
@ -4,7 +4,7 @@ Mon Jul 2 23:30:30 UTC 2012 - jengelh@inai.de
|
|||||||
- Update to new upstream version 1.10.4
|
- Update to new upstream version 1.10.4
|
||||||
* A memory bug from 1.10.1, and --create-as-user and thread
|
* A memory bug from 1.10.1, and --create-as-user and thread
|
||||||
safety regressions were resolved.
|
safety regressions were resolved.
|
||||||
- Add patches for honoring CFLAGS and reducing memory usage.
|
- Add patches for honoring CFLAGS, and to fix a crash
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Sat May 5 13:30:19 UTC 2012 - jengelh@medozas.de
|
Sat May 5 13:30:19 UTC 2012 - jengelh@medozas.de
|
||||||
|
@ -26,9 +26,11 @@ Group: System/Filesystems
|
|||||||
#Git-Clone: git://github.com/mpartel/bindfs
|
#Git-Clone: git://github.com/mpartel/bindfs
|
||||||
#DL-URL: http://bindfs.googlecode.com/files/bindfs-1.10.4.tar.gz
|
#DL-URL: http://bindfs.googlecode.com/files/bindfs-1.10.4.tar.gz
|
||||||
Source: %name-%version.tar.bz2
|
Source: %name-%version.tar.bz2
|
||||||
|
# 1,2,3,6 sent upstream #2012-07-02
|
||||||
Patch1: bindfs-01-cflags.diff
|
Patch1: bindfs-01-cflags.diff
|
||||||
Patch2: bindfs-02-automake.diff
|
Patch2: bindfs-02-automake.diff
|
||||||
Patch3: bindfs-03-permchain1.diff
|
Patch3: bindfs-03-permchain1.diff
|
||||||
|
Patch6: bindfs-06-fix-short-alloc.diff
|
||||||
Url: http://code.google.com/p/bindfs/
|
Url: http://code.google.com/p/bindfs/
|
||||||
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||||
BuildRequires: autoconf
|
BuildRequires: autoconf
|
||||||
@ -50,7 +52,7 @@ using various rules.
|
|||||||
|
|
||||||
%prep
|
%prep
|
||||||
%setup -q
|
%setup -q
|
||||||
%patch -P 1 -P 2 -P 3 -p1
|
%patch -P 1 -P 2 -P 3 -P 6 -p1
|
||||||
|
|
||||||
%build
|
%build
|
||||||
autoreconf -fi;
|
autoreconf -fi;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user