Hello community,

here is the log from the commit of package fuse-overlayfs for openSUSE:Factory 
checked in at 2020-01-12 23:17:02
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/fuse-overlayfs (Old)
 and      /work/SRC/openSUSE:Factory/.fuse-overlayfs.new.6675 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "fuse-overlayfs"

Sun Jan 12 23:17:02 2020 rev:5 rq:762137 version:0.7.3

Changes:
--------
--- /work/SRC/openSUSE:Factory/fuse-overlayfs/fuse-overlayfs.changes    
2020-01-01 14:56:25.269872264 +0100
+++ /work/SRC/openSUSE:Factory/.fuse-overlayfs.new.6675/fuse-overlayfs.changes  
2020-01-12 23:17:44.978668904 +0100
@@ -1,0 +2,9 @@
+Thu Jan  9 11:18:57 UTC 2020 - Sascha Grunert <sgrun...@suse.com>
+
+- Update to v0.7.3
+  - fix build with -fno-common
+  - fix possible segmentation fault in direct_fsync()
+  - use the data store to create missing whiteouts
+  - after a rename, force a directory reload
+
+-------------------------------------------------------------------

Old:
----
  fuse-overlayfs-0.7.2.tar.xz

New:
----
  fuse-overlayfs-0.7.3.tar.xz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ fuse-overlayfs.spec ++++++
--- /var/tmp/diff_new_pack.KouNrb/_old  2020-01-12 23:17:45.874669235 +0100
+++ /var/tmp/diff_new_pack.KouNrb/_new  2020-01-12 23:17:45.882669239 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package fuse-overlayfs
 #
-# Copyright (c) 2019 SUSE LLC
+# Copyright (c) 2020 SUSE LLC
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -17,7 +17,7 @@
 
 
 Name:           fuse-overlayfs
-Version:        0.7.2
+Version:        0.7.3
 Release:        0
 Summary:        FUSE implementation for overlayfs
 License:        GPL-3.0-only

++++++ _service ++++++
--- /var/tmp/diff_new_pack.KouNrb/_old  2020-01-12 23:17:45.906669248 +0100
+++ /var/tmp/diff_new_pack.KouNrb/_new  2020-01-12 23:17:45.906669248 +0100
@@ -3,8 +3,8 @@
     <param name="url">https://github.com/containers/fuse-overlayfs.git</param>
     <param name="scm">git</param>
     <param name="filename">fuse-overlayfs</param>
-    <param name="versionformat">0.7.2</param>
-    <param name="revision">v0.7.2</param>
+    <param name="versionformat">0.7.3</param>
+    <param name="revision">v0.7.3</param>
   </service>
   <service name="set_version" mode="disabled">
     <param name="basename">fuse-overlayfs</param>

++++++ fuse-overlayfs-0.7.2.tar.xz -> fuse-overlayfs-0.7.3.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fuse-overlayfs-0.7.2/Dockerfile.static 
new/fuse-overlayfs-0.7.3/Dockerfile.static
--- old/fuse-overlayfs-0.7.2/Dockerfile.static  2019-11-29 14:16:32.000000000 
+0100
+++ new/fuse-overlayfs-0.7.3/Dockerfile.static  1970-01-01 01:00:00.000000000 
+0100
@@ -1,21 +0,0 @@
-FROM registry.fedoraproject.org/fedora:latest
-WORKDIR /build
-RUN dnf update -y && \
-    dnf install -y git make automake autoconf gcc glibc-static meson 
ninja-build clang
-
-RUN git clone https://github.com/libfuse/libfuse && \
-    cd libfuse && \
-    mkdir build && \
-    cd build && \
-    LDFLAGS="-lpthread" meson --prefix /usr -D default_library=static .. && \
-    ninja && \
-    ninja install
-
-RUN git clone https://github.com/containers/fuse-overlayfs && \
-    cd fuse-overlayfs && \
-    sh autogen.sh && \
-    LIBS="-ldl" LDFLAGS="-static" ./configure --prefix /usr && \
-    make && \
-    make install
-USER 1000
-ENTRYPOINT ["/usr/bin/fuse-overlayfs","-f"]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fuse-overlayfs-0.7.2/Dockerfile.static.fedora 
new/fuse-overlayfs-0.7.3/Dockerfile.static.fedora
--- old/fuse-overlayfs-0.7.2/Dockerfile.static.fedora   1970-01-01 
01:00:00.000000000 +0100
+++ new/fuse-overlayfs-0.7.3/Dockerfile.static.fedora   2020-01-09 
12:06:17.000000000 +0100
@@ -0,0 +1,21 @@
+FROM registry.fedoraproject.org/fedora:latest
+WORKDIR /build
+RUN dnf update -y && \
+    dnf install -y git make automake autoconf gcc glibc-static meson 
ninja-build clang
+
+RUN git clone https://github.com/libfuse/libfuse && \
+    cd libfuse && \
+    mkdir build && \
+    cd build && \
+    LDFLAGS="-lpthread" meson --prefix /usr -D default_library=static .. && \
+    ninja && \
+    ninja install
+
+RUN git clone https://github.com/containers/fuse-overlayfs && \
+    cd fuse-overlayfs && \
+    sh autogen.sh && \
+    LIBS="-ldl" LDFLAGS="-static" ./configure --prefix /usr && \
+    make && \
+    make install
+USER 1000
+ENTRYPOINT ["/usr/bin/fuse-overlayfs","-f"]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fuse-overlayfs-0.7.2/Dockerfile.static.ubuntu 
new/fuse-overlayfs-0.7.3/Dockerfile.static.ubuntu
--- old/fuse-overlayfs-0.7.2/Dockerfile.static.ubuntu   1970-01-01 
01:00:00.000000000 +0100
+++ new/fuse-overlayfs-0.7.3/Dockerfile.static.ubuntu   2020-01-09 
12:06:17.000000000 +0100
@@ -0,0 +1,11 @@
+FROM docker.io/ubuntu:rolling
+WORKDIR /build
+RUN apt-get update && \
+    apt-get install --no-install-recommends -y \
+        libc6-dev gcc g++ make automake autoconf clang pkgconf libfuse3-dev
+
+RUN cd fuse-overlayfs && \
+    sh autogen.sh && \
+    LIBS="-ldl" LDFLAGS="-static" ./configure --prefix /usr && \
+    make
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fuse-overlayfs-0.7.2/Makefile.am 
new/fuse-overlayfs-0.7.3/Makefile.am
--- old/fuse-overlayfs-0.7.2/Makefile.am        2019-11-29 14:16:32.000000000 
+0100
+++ new/fuse-overlayfs-0.7.3/Makefile.am        2020-01-09 12:06:17.000000000 
+0100
@@ -4,7 +4,7 @@
 
 ACLOCAL_AMFLAGS = -Im4
 
-EXTRA_DIST = m4/gnulib-cache.m4 rpm/fuse-overlayfs.spec.template autogen.sh 
fuse-overlayfs.1.md utils.h NEWS tests/suid-test.c plugin.h plugin-manager.h
+EXTRA_DIST = m4/gnulib-cache.m4 rpm/fuse-overlayfs.spec.template autogen.sh 
fuse-overlayfs.1.md utils.h NEWS tests/suid-test.c plugin.h plugin-manager.h 
fuse-overlayfs.h fuse_overlayfs_error.h
 
 CLEANFILES = fuse-overlayfs.1
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fuse-overlayfs-0.7.2/NEWS 
new/fuse-overlayfs-0.7.3/NEWS
--- old/fuse-overlayfs-0.7.2/NEWS       2019-11-29 14:16:32.000000000 +0100
+++ new/fuse-overlayfs-0.7.3/NEWS       2020-01-09 12:06:17.000000000 +0100
@@ -1,3 +1,10 @@
+* fuse-overlayfs-0.7.3
+
+- fix build with -fno-common
+- fix possible segmentation fault in direct_fsync()
+- use the data store to create missing whiteouts.
+- after a rename, force a directory reload.
+
 * fuse-overlayfs-0.7.2
 
 - drop special handling for security.capability.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fuse-overlayfs-0.7.2/README.md 
new/fuse-overlayfs-0.7.3/README.md
--- old/fuse-overlayfs-0.7.2/README.md  2019-11-29 14:16:32.000000000 +0100
+++ new/fuse-overlayfs-0.7.3/README.md  2020-01-09 12:06:17.000000000 +0100
@@ -43,23 +43,16 @@
   * manually create the device with the command `mknod /dev/fuse -m 0666 c 10 
229` 
 (see [this 
code](https://github.com/libfuse/libfuse/blob/f0e08cc700d629da2d46def8b620b0ed858cc0d9/util/install_helper.sh#L35))
 
-3. Clone this repository, and switch to the top-level folder containing the 
file `Dockerfile.static`;
+3. Clone this repository, and switch to the top-level folder containing the 
file "`Dockerfile.static.ubuntu`";
 
 4. Launch the build with the command (note the single dot `.` at the end): 
 ```
-buildah bud --device /dev/fuse -t fuse-overlayfs -f ./Dockerfile.static .
+buildah bud -v $PWD:/build/fuse-overlayfs -t fuse-overlayfs -f 
./Dockerfile.static.ubuntu .
 ```
 
 5. Copy the resulting binary to your host:
 
-  * if you have `podman` installed:
 ```
-podman run --rm --entrypoint="[]" fuse-overlayfs cat /usr/bin/fuse-overlayfs | 
sudo tee /usr/bin/fuse-overlayfs > /dev/null
-```
-  * or, if you only have `buildah` installed:
-```
-container="$(buildah from fuse-overlayfs)"
-buildah run "$container" cat /usr/bin/fuse-overlayfs | sudo tee 
/usr/bin/fuse-overlayfs > /dev/null
-buildah rm "$container"
+sudo cp fuse-overlayfs /usr/bin/
 ```
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fuse-overlayfs-0.7.2/configure.ac 
new/fuse-overlayfs-0.7.3/configure.ac
--- old/fuse-overlayfs-0.7.2/configure.ac       2019-11-29 14:16:32.000000000 
+0100
+++ new/fuse-overlayfs-0.7.3/configure.ac       2020-01-09 12:06:17.000000000 
+0100
@@ -1,5 +1,5 @@
 AC_PREREQ([2.69])
-AC_INIT([fuse-overlayfs], [0.7.2], [giuse...@scrivano.org])
+AC_INIT([fuse-overlayfs], [0.7.3], [giuse...@scrivano.org])
 AC_CONFIG_SRCDIR([main.c])
 AC_CONFIG_HEADERS([config.h])
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fuse-overlayfs-0.7.2/fuse-overlayfs.h 
new/fuse-overlayfs-0.7.3/fuse-overlayfs.h
--- old/fuse-overlayfs-0.7.2/fuse-overlayfs.h   2019-11-29 14:16:32.000000000 
+0100
+++ new/fuse-overlayfs-0.7.3/fuse-overlayfs.h   2020-01-09 12:06:17.000000000 
+0100
@@ -134,7 +134,7 @@
 };
 
 /* passtrough to the file system.  */
-struct data_source direct_access_ds;
+extern struct data_source direct_access_ds;
 
 # ifndef HAVE_STATX
 #  define STATX_TYPE           0x00000001U     /* Want/got stx_mode & S_IFMT */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fuse-overlayfs-0.7.2/main.c 
new/fuse-overlayfs-0.7.3/main.c
--- old/fuse-overlayfs-0.7.2/main.c     2019-11-29 14:16:32.000000000 +0100
+++ new/fuse-overlayfs-0.7.3/main.c     2020-01-09 12:06:17.000000000 +0100
@@ -467,7 +467,7 @@
     {
       if (errno == ENOTSUP)
         goto create_opq_whiteout;
-      if (errno != EPERM || fsetxattr (fd, OPAQUE_XATTR, "y", 1, 0) < 0 && 
errno != ENOTSUP)
+      if (errno != EPERM || (fsetxattr (fd, OPAQUE_XATTR, "y", 1, 0) < 0 && 
errno != ENOTSUP))
           return -1;
     }
  create_opq_whiteout:
@@ -698,7 +698,7 @@
 static void
 node_mark_all_free (void *p)
 {
-  struct ovl_node *it, *tmp, *n = (struct ovl_node *) p;
+  struct ovl_node *it, *n = (struct ovl_node *) p;
 
   for (it = n->next_link; it; it = it->next_link)
     it->ino->lookups = 0;
@@ -925,7 +925,6 @@
 static struct ovl_node *
 register_inode (struct ovl_data *lo, struct ovl_node *n, mode_t mode)
 {
-  int ret;
   struct ovl_ino key;
   struct ovl_ino *ino = NULL;
 
@@ -1067,12 +1066,19 @@
 
   new_name = strdup (name);
   if (new_name == NULL)
+    {
+      free (ret);
       return NULL;
+    }
   node_set_name (ret, new_name);
 
   ret->path = strdup (path);
   if (ret->path == NULL)
-    return NULL;
+    {
+      free (new_name);
+      free (ret);
+      return NULL;
+    }
 
   ret->whiteout = 1;
   ret->ino = &dummy_ino;
@@ -1381,10 +1387,7 @@
 
       ret = it->ds->file_exists (it, parent_whiteout_path);
       if (ret < 0 && errno != ENOENT && errno != ENOTDIR)
-        {
-          it->ds->closedir (dp);
-          return NULL;
-        }
+        return NULL;
 
       if (ret == 0)
         break;
@@ -1524,6 +1527,7 @@
           n->last_layer = it;
           stop_lookup = true;
         }
+      it->ds->closedir (dp);
     }
 
   if (get_timeout (lo) > 0)
@@ -1719,7 +1723,6 @@
       struct ovl_layer *it;
       struct stat st;
       bool stop_lookup = false;
-      struct ovl_layer *upper_layer = get_upper_layer (lo);
 
       for (it = lo->layers; it && !stop_lookup; it = it->next)
         {
@@ -1975,28 +1978,19 @@
   for (l = get_lower_layers (lo); l; l = l->next)
     {
       cleanup_dir DIR *dp = NULL;
-      cleanup_close int cleanup_fd = -1;
 
-      cleanup_fd = l->ds->openat (l, from, O_DIRECTORY, 0755);
-      if (cleanup_fd < 0)
+      dp = l->ds->opendir (l, from);
+      if (dp == NULL)
         {
-          if (errno == ENOENT)
-            continue;
           if (errno == ENOTDIR)
             break;
-
+          if (errno == ENOENT)
+            continue;
           return -1;
         }
-
-      dp = fdopendir (cleanup_fd);
-      if (dp == NULL)
-        return -1;
       else
         {
           struct dirent *dent;
-          int fd = cleanup_fd;
-
-          cleanup_fd = -1;  /* Now owned by dp.  */
 
           for (;;)
             {
@@ -2017,6 +2011,8 @@
                 continue;
               if (strcmp (dent->d_name, "..") == 0)
                 continue;
+              if (has_prefix (dent->d_name, ".wh."))
+                continue;
 
               node_set_name (&key, (char *) dent->d_name);
 
@@ -2145,7 +2141,7 @@
 {
   cleanup_lock int l = enter_big_lock ();
   if (UNLIKELY (ovl_debug (req)))
-    fprintf (stderr, "ovl_readdir(ino=%" PRIu64 ", size=%zu, offset=%llo)\n", 
ino, size, offset);
+    fprintf (stderr, "ovl_readdir(ino=%" PRIu64 ", size=%zu, offset=%lo)\n", 
ino, size, offset);
   ovl_do_readdir (req, ino, size, offset, fi, 0);
 }
 
@@ -2155,7 +2151,7 @@
 {
   cleanup_lock int l = enter_big_lock ();
   if (UNLIKELY (ovl_debug (req)))
-    fprintf (stderr, "ovl_readdirplus(ino=%" PRIu64 ", size=%zu, 
offset=%llo)\n", ino, size, offset);
+    fprintf (stderr, "ovl_readdirplus(ino=%" PRIu64 ", size=%zu, 
offset=%lo)\n", ino, size, offset);
   ovl_do_readdir (req, ino, size, offset, fi, 1);
 }
 
@@ -2165,7 +2161,6 @@
   cleanup_lock int l = enter_big_lock ();
   size_t s;
   struct ovl_dirp *d = ovl_dirp (fi);
-  struct ovl_data *lo = ovl_data (req);
 
   if (UNLIKELY (ovl_debug (req)))
     fprintf (stderr, "ovl_releasedir(ino=%" PRIu64 ")\n", ino);
@@ -2308,7 +2303,6 @@
 ovl_access (fuse_req_t req, fuse_ino_t ino, int mask)
 {
   cleanup_lock int l = enter_big_lock ();
-  int ret;
   struct ovl_data *lo = ovl_data (req);
   struct ovl_node *n = do_lookup_file (lo, ino, NULL);
 
@@ -2316,7 +2310,7 @@
     fprintf (stderr, "ovl_access(ino=%" PRIu64 ", mask=%d)\n",
             ino, mask);
 
-  if (mask & n->ino->mode == mask)
+  if ((mask & n->ino->mode) == mask)
     fuse_reply_err (req, 0);
   else
     fuse_reply_err (req, EPERM);
@@ -2514,7 +2508,6 @@
         ret = TEMP_FAILURE_RETRY (write (dfd, buf + written, nread));
         if (ret < 0)
           return ret;
-        written += ret;
         nread -= ret;
       }
       while (nread);
@@ -2828,9 +2821,7 @@
 static int
 empty_dir (struct ovl_layer *l, const char *path)
 {
-  cleanup_dir DIR *dp = NULL;
   cleanup_close int cleanup_fd = -1;
-  struct dirent *dent;
   int ret;
 
   cleanup_fd = TEMP_FAILURE_RETRY (openat (l->fd, path, O_DIRECTORY));
@@ -3151,7 +3142,6 @@
   bool readonly = (flags & (O_APPEND | O_RDWR | O_WRONLY | O_CREAT | O_TRUNC)) 
== 0;
   cleanup_free char *path = NULL;
   cleanup_close int fd = -1;
-  const struct fuse_ctx *ctx = fuse_req_ctx (req);
   uid_t uid;
   gid_t gid;
   bool need_delete_whiteout = true;
@@ -3382,7 +3372,6 @@
   cleanup_lock int l = enter_big_lock ();
   cleanup_close int fd = -1;
   struct fuse_entry_param e;
-  struct ovl_data *lo = ovl_data (req);
   struct ovl_node *node = NULL;
   struct stat st;
 
@@ -3884,7 +3873,6 @@
   struct ovl_node *pnode, *node, *destnode, *destpnode;
   struct ovl_data *lo = ovl_data (req);
   int ret;
-  int saved_errno;
   cleanup_close int srcfd = -1;
   cleanup_close int destfd = -1;
   struct ovl_node *rm1, *rm2;
@@ -4180,6 +4168,8 @@
   if (update_paths (node) < 0)
     goto error;
 
+  node->loaded = 0;
+
   ret = 0;
   goto cleanup;
 
@@ -4588,10 +4578,21 @@
   l = enter_big_lock ();
 
   node = do_lookup_file (lo, ino, NULL);
+  if (node == NULL)
+    {
+      fuse_reply_err (req, ENOENT);
+      return;
+    }
 
   /* Skip fsync for lower layers.  */
   do_fsync = node && node->layer == get_upper_layer (lo);
 
+  if (node->layer == NULL)
+    {
+      fuse_reply_err (req, ENOENT);
+      return;
+    }
+
   if (fd < 0)
     strcpy (path, node->path);
 
@@ -4721,7 +4722,7 @@
   int ret;
 
   if (UNLIKELY (ovl_debug (req)))
-    fprintf (stderr, "ovl_fallocate(ino=%" PRIu64 ", mode=%d, offset=%llo, 
length=%llu, fi=%p)\n",
+    fprintf (stderr, "ovl_fallocate(ino=%" PRIu64 ", mode=%d, offset=%lo, 
length=%lu, fi=%p)\n",
              ino, mode, offset, length, fi);
 
   node = do_lookup_file (lo, ino, NULL);
@@ -4772,7 +4773,7 @@
   ssize_t ret;
 
   if (UNLIKELY (ovl_debug (req)))
-    fprintf (stderr, "ovl_copy_file_range(ino_in=%" PRIu64 ", off_in=%llo, 
fi_in=%p), ino_out=%" PRIu64 ", off_out=%llo, fi_out=%p, size=%zu, flags=%d)\n",
+    fprintf (stderr, "ovl_copy_file_range(ino_in=%" PRIu64 ", off_in=%lo, 
fi_in=%p, ino_out=%" PRIu64 ", off_out=%lo, fi_out=%p, size=%zu, flags=%d)\n",
              ino_in, off_in, fi_in, ino_out, off_out, fi_out, len, flags);
 
   node = do_lookup_file (lo, ino_in, NULL);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fuse-overlayfs-0.7.2/utils.c 
new/fuse-overlayfs-0.7.3/utils.c
--- old/fuse-overlayfs-0.7.2/utils.c    2019-11-29 14:16:32.000000000 +0100
+++ new/fuse-overlayfs-0.7.3/utils.c    2020-01-09 12:06:17.000000000 +0100
@@ -94,8 +94,6 @@
 
       memcpy (current, s3, t);
       current += t;
-
-      size -= t;
     }
   *current = '\0';
 
@@ -136,8 +134,6 @@
 int
 open_fd_or_get_path (struct ovl_layer *l, const char *path, char *out, int 
*fd, int flags)
 {
-  int ret;
-
   out[0] = '\0';
 
   *fd = l->ds->openat (l, path, O_NONBLOCK|O_NOFOLLOW|flags, 0755);


Reply via email to