Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package slirp4netns for openSUSE:Factory 
checked in at 2024-02-15 20:58:48
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/slirp4netns (Old)
 and      /work/SRC/openSUSE:Factory/.slirp4netns.new.1815 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "slirp4netns"

Thu Feb 15 20:58:48 2024 rev:16 rq:1146510 version:1.2.3

Changes:
--------
--- /work/SRC/openSUSE:Factory/slirp4netns/slirp4netns.changes  2023-10-08 
12:18:41.310955809 +0200
+++ /work/SRC/openSUSE:Factory/.slirp4netns.new.1815/slirp4netns.changes        
2024-02-15 20:58:58.896965085 +0100
@@ -1,0 +2,7 @@
+Wed Feb  7 10:15:17 UTC 2024 - Dan Čermák <dcer...@suse.com>
+
+- New upstream release 1.2.3:
+
+  * Fix some FD leaks (#334, thanks to @giuseppe)
+
+-------------------------------------------------------------------

Old:
----
  slirp4netns-1.2.2.tar.xz

New:
----
  slirp4netns-1.2.3.tar.xz

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

Other differences:
------------------
++++++ slirp4netns.spec ++++++
--- /var/tmp/diff_new_pack.V9QZUw/_old  2024-02-15 20:58:59.476986031 +0100
+++ /var/tmp/diff_new_pack.V9QZUw/_new  2024-02-15 20:58:59.476986031 +0100
@@ -17,7 +17,7 @@
 
 
 Name:           slirp4netns
-Version:        1.2.2
+Version:        1.2.3
 Release:        0
 Summary:        User-mode networking for unprivileged network namespaces
 License:        BSD-2-Clause AND GPL-2.0-only AND MIT

++++++ _service ++++++
--- /var/tmp/diff_new_pack.V9QZUw/_old  2024-02-15 20:58:59.512987332 +0100
+++ /var/tmp/diff_new_pack.V9QZUw/_new  2024-02-15 20:58:59.516987476 +0100
@@ -1,18 +1,18 @@
 <services>
-<service name="tar_scm" mode="disabled">
+<service name="tar_scm" mode="manual">
   <param 
name="url">https://github.com/rootless-containers/slirp4netns.git</param>
   <param name="scm">git</param>
   <param name="filename">slirp4netns</param>
-  <param name="revision">v1.2.2</param>
+  <param name="revision">v1.2.3</param>
   <param name="versionformat">@PARENT_TAG@</param>
   <param name="versionrewrite-pattern">v(.*)</param>
 </service>
 
-<service name="recompress" mode="disabled">
+<service name="recompress" mode="manual">
   <param name="file">*.tar</param>
   <param name="compression">xz</param>
 </service>
 
-<service name="set_version" mode="disabled" />
+<service name="set_version" mode="manual" />
 </services>
 

++++++ slirp4netns-1.2.2.tar.xz -> slirp4netns-1.2.3.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/slirp4netns-1.2.2/.github/workflows/release.yaml 
new/slirp4netns-1.2.3/.github/workflows/release.yaml
--- old/slirp4netns-1.2.2/.github/workflows/release.yaml        2023-09-13 
16:19:04.000000000 +0200
+++ new/slirp4netns-1.2.3/.github/workflows/release.yaml        2024-02-06 
16:26:54.000000000 +0100
@@ -25,27 +25,17 @@
         path: var-lib-apt
         key: var-lib-apt-${{ hashFiles('Dockerfile.artifact') }}
     - name: inject var-cache-apt into docker
-      uses: 
overmindtech/buildkit-cache-dance/inject@306d31a77191f643c0c4a95083f36c6ddccb4a16
+      uses: reproducible-containers/buildkit-cache-dance@v2.1.2
       with:
         cache-source: var-cache-apt
         cache-target: /var/cache/apt
     - name: inject var-lib-apt into docker
-      uses: 
overmindtech/buildkit-cache-dance/inject@306d31a77191f643c0c4a95083f36c6ddccb4a16
+      uses: reproducible-containers/buildkit-cache-dance@v2.1.2
       with:
         cache-source: var-lib-apt
         cache-target: /var/lib/apt
     - name: "Build binaries from Dockerfile.artifact"
       run: docker buildx build -o /tmp/slirpbuilds --build-arg 
SOURCE_DATE_EPOCH --platform=amd64,arm64,arm,s390x,ppc64le,riscv64 -f 
Dockerfile.artifact .
-    - name: extract var-cache-apt into docker
-      uses: 
overmindtech/buildkit-cache-dance/extract@306d31a77191f643c0c4a95083f36c6ddccb4a16
-      with:
-        cache-source: var-cache-apt
-        cache-target: /var/cache/apt
-    - name: extract var-lib-apt into docker
-      uses: 
overmindtech/buildkit-cache-dance/extract@306d31a77191f643c0c4a95083f36c6ddccb4a16
-      with:
-        cache-source: var-lib-apt
-        cache-target: /var/lib/apt
     - name: "Create /tmp/artifact"
       run: |
         mkdir -p /tmp/artifact
@@ -62,14 +52,11 @@
       run: sha256sum /tmp/SHA256SUMS
     - name: "Prepare the release note"
       run: |
-        tag="${GITHUB_REF##*/}"
         shasha=$(sha256sum /tmp/SHA256SUMS | awk '{print $1}')
         libslirp_version=$(/tmp/artifact/slirp4netns-x86_64 -v | grep -oP 
'^libslirp: \K\S*')
         libseccomp_version=$(/tmp/artifact/slirp4netns-x86_64 -v | grep -oP 
'^libseccomp: \K\S*')
         ubuntu_version=$(grep -oP '^ARG UBUNTU_VERSION=\K\S*' 
Dockerfile.artifact)
         cat << EOF | tee /tmp/release-note.txt
-        ${tag}
-
         #### Changes
         (To be documented)
 
@@ -92,6 +79,7 @@
         docker buildx build \
           -o /tmp/slirpbuilds \
           --build-arg SOURCE_DATE_EPOCH=${SOURCE_DATE_EPOCH} \
+          --build-arg BUILDKIT_CONTEXT_KEEP_GIT_DIR=1 \
           --platform=amd64,arm64,arm,s390x,ppc64le,riscv64 \
           -f Dockerfile.artifact \
           "https://github.com/${{ github.repository }}.git#${tag}"
@@ -103,6 +91,4 @@
         GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
       run: |
         tag="${GITHUB_REF##*/}"
-        asset_flags=()
-        for f in /tmp/artifact/* /tmp/SHA256SUMS; do asset_flags+=("-a" "$f"); 
done
-        hub release create "${asset_flags[@]}" -F /tmp/release-note.txt 
--draft "${tag}"
+        gh release create -F /tmp/release-note.txt --draft --title "${tag}" 
"${tag}" /tmp/artifact/* /tmp/SHA256SUMS
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/slirp4netns-1.2.2/Dockerfile.artifact 
new/slirp4netns-1.2.3/Dockerfile.artifact
--- old/slirp4netns-1.2.2/Dockerfile.artifact   2023-09-13 16:19:04.000000000 
+0200
+++ new/slirp4netns-1.2.3/Dockerfile.artifact   2024-02-06 16:26:54.000000000 
+0100
@@ -6,7 +6,7 @@
 #   -f Dockerfile.artifact .
 
 ARG LIBSLIRP_COMMIT=v4.7.0
-ARG UBUNTU_VERSION=jammy-20230804
+ARG UBUNTU_VERSION=jammy-20240125
 ARG 
XX_VERSION=1.2.1@sha256:8879a398dedf0aadaacfbd332b29ff2f84bc39ae6d4e9c0a1109db27ac5ba012
 ARG REPRO_SOURCES_LIST_VERSION=v0.1.0
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/slirp4netns-1.2.2/Makefile.am 
new/slirp4netns-1.2.3/Makefile.am
--- old/slirp4netns-1.2.2/Makefile.am   2023-09-13 16:19:04.000000000 +0200
+++ new/slirp4netns-1.2.3/Makefile.am   2024-02-06 16:26:54.000000000 +0100
@@ -36,7 +36,7 @@
        vendor/parson/parson.h
 
 # define specific commit if git available or it was replaced during 
git-archive creation
-COMMIT := $(shell V=0ee2d87523e906518d34a6b423271e4826f71faf ; \
+COMMIT := $(shell V=$Format:%H$ ; \
        expr match "$$V" ormat: >/dev/null \
                && (cd "$$abs_srcdir" && [ -d .git ] && git describe --always 
--abbrev=0 --dirty --exclude=\* || echo unknown) \
                || echo "$$V" )
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/slirp4netns-1.2.2/api.c new/slirp4netns-1.2.3/api.c
--- old/slirp4netns-1.2.2/api.c 2023-09-13 16:19:04.000000000 +0200
+++ new/slirp4netns-1.2.3/api.c 2024-02-06 16:26:54.000000000 +0100
@@ -17,25 +17,28 @@
     unlink(api_socket); /* avoid EADDRINUSE */
     if ((fd = socket(AF_UNIX, SOCK_STREAM, 0)) < 0) {
         perror("api_bindlisten: socket");
-        return -1;
+        goto cleanup_and_fail;
     }
     memset(&addr, 0, sizeof(addr));
     addr.sun_family = AF_UNIX;
     if (strlen(api_socket) >= sizeof(addr.sun_path)) {
         fprintf(stderr, "the specified API socket path is too long (>= %lu)\n",
                 sizeof(addr.sun_path));
-        return -1;
+        goto cleanup_and_fail;
     }
     strncpy(addr.sun_path, api_socket, sizeof(addr.sun_path) - 1);
     if (bind(fd, (struct sockaddr *)&addr, sizeof(addr)) < 0) {
         perror("api_bindlisten: bind");
-        return -1;
+        goto cleanup_and_fail;
     }
     if (listen(fd, 0) < 0) {
         perror("api_bindlisten: listen");
-        return -1;
+        goto cleanup_and_fail;
     }
     return fd;
+cleanup_and_fail:
+    close(fd);
+    return -1;
 }
 
 struct api_hostfwd {
@@ -57,7 +60,7 @@
 
 struct api_ctx *api_ctx_alloc(struct slirp4netns_config *cfg)
 {
-    struct api_ctx *ctx = (struct api_ctx *)g_malloc0(sizeof(*ctx));
+    struct api_ctx *ctx = (struct api_ctx *)calloc(1, sizeof(*ctx));
     if (ctx == NULL) {
         return NULL;
     }
@@ -116,7 +119,7 @@
         const char *err = "{\"error\":{\"desc\":\"bad request: add_hostfwd: "
                           "bad arguments.proto\"}}";
         wrc = write(fd, err, strlen(err));
-        free(fwd);
+        g_free(fwd);
         goto finish;
     }
     if (host_addr_s == NULL || host_addr_s[0] == '\0') {
@@ -126,7 +129,7 @@
         const char *err = "{\"error\":{\"desc\":\"bad request: add_hostfwd: "
                           "bad arguments.host_addr\"}}";
         wrc = write(fd, err, strlen(err));
-        free(fwd);
+        g_free(fwd);
         goto finish;
     }
     fwd->host_port = (int)json_object_dotget_number(jo, "arguments.host_port");
@@ -134,7 +137,7 @@
         const char *err = "{\"error\":{\"desc\":\"bad request: add_hostfwd: "
                           "bad arguments.host_port\"}}";
         wrc = write(fd, err, strlen(err));
-        free(fwd);
+        g_free(fwd);
         goto finish;
     }
 
@@ -144,7 +147,7 @@
         const char *err = "{\"error\":{\"desc\":\"bad request: add_hostfwd: "
                           "bad arguments.guest_addr\"}}";
         wrc = write(fd, err, strlen(err));
-        free(fwd);
+        g_free(fwd);
         goto finish;
     }
     fwd->guest_port =
@@ -153,7 +156,7 @@
         const char *err = "{\"error\":{\"desc\":\"bad request: add_hostfwd: "
                           "bad arguments.guest_port\"}}";
         wrc = write(fd, err, strlen(err));
-        free(fwd);
+        g_free(fwd);
         goto finish;
     }
     if (slirp_add_hostfwd(slirp, fwd->is_udp, fwd->host_addr, fwd->host_port,
@@ -161,7 +164,7 @@
         const char *err = "{\"error\":{\"desc\":\"bad request: add_hostfwd: "
                           "slirp_add_hostfwd failed\"}}";
         wrc = write(fd, err, strlen(err));
-        free(fwd);
+        g_free(fwd);
         goto finish;
     }
     fwd->id = ctx->hostfwds_nextid;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/slirp4netns-1.2.2/configure.ac 
new/slirp4netns-1.2.3/configure.ac
--- old/slirp4netns-1.2.2/configure.ac  2023-09-13 16:19:04.000000000 +0200
+++ new/slirp4netns-1.2.3/configure.ac  2024-02-06 16:26:54.000000000 +0100
@@ -1,5 +1,5 @@
 AC_PREREQ([2.69])
-AC_INIT([slirp4netns], [1.2.2], 
[https://github.com/rootless-containers/slirp4netns/issues])
+AC_INIT([slirp4netns], [1.2.3], 
[https://github.com/rootless-containers/slirp4netns/issues])
 AC_CONFIG_SRCDIR([main.c])
 AC_CONFIG_HEADERS([config.h])
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/slirp4netns-1.2.2/main.c new/slirp4netns-1.2.3/main.c
--- old/slirp4netns-1.2.2/main.c        2023-09-13 16:19:04.000000000 +0200
+++ new/slirp4netns-1.2.3/main.c        2024-02-06 16:26:54.000000000 +0100
@@ -42,41 +42,58 @@
                    bool only_userns)
 {
     int usernsfd = -1, netnsfd = -1;
+    char *netns_allocated = NULL;
+    char *userns_allocated = NULL;
+
     if (!only_userns && !netns) {
-        if (asprintf(&netns, "/proc/%d/ns/net", target_pid) < 0) {
+        if (asprintf(&netns_allocated, "/proc/%d/ns/net", target_pid) < 0) {
             perror("cannot get netns path");
-            return -1;
+            goto fail;
         }
+        netns = netns_allocated;
     }
     if (!userns && target_pid) {
-        if (asprintf(&userns, "/proc/%d/ns/user", target_pid) < 0) {
+        if (asprintf(&userns_allocated, "/proc/%d/ns/user", target_pid) < 0) {
             perror("cannot get userns path");
-            return -1;
+            goto fail;
         }
+        userns = userns_allocated;
     }
     if (!only_userns && (netnsfd = open(netns, O_RDONLY)) < 0) {
         perror(netns);
-        return netnsfd;
+        goto fail;
     }
     if (userns && (usernsfd = open(userns, O_RDONLY)) < 0) {
         perror(userns);
-        return usernsfd;
+        goto fail;
     }
 
     if (usernsfd != -1) {
         int r = setns(usernsfd, CLONE_NEWUSER);
         if (only_userns && r < 0) {
             perror("setns(CLONE_NEWUSER)");
-            return -1;
+            goto fail;
         }
         close(usernsfd);
+        usernsfd = -1;
     }
-    if (netnsfd != -1 && setns(netnsfd, CLONE_NEWNET) < 0) {
-        perror("setns(CLONE_NEWNET)");
-        return -1;
+    if (netnsfd != -1) {
+        if (setns(netnsfd, CLONE_NEWNET) < 0) {
+            perror("setns(CLONE_NEWNET)");
+            goto fail;
+        }
+        close(netnsfd);
     }
-    close(netnsfd);
     return 0;
+fail:
+    free(netns_allocated);
+    free(userns_allocated);
+
+    if (usernsfd != -1)
+        close(usernsfd);
+    if (netnsfd != -1)
+        close(netnsfd);
+    return -1;
 }
 
 static int open_tap(const char *tapname)
@@ -148,7 +165,7 @@
                             .ifr_flags = IFF_UP | IFF_RUNNING };
     if (ioctl(sockfd, SIOCSIFFLAGS, &ifr_lo) < 0) {
         perror("cannot set device up");
-        return -1;
+        goto fail;
     }
 
     memset(&ifr, 0, sizeof(ifr));
@@ -157,20 +174,20 @@
 
     if (ioctl(sockfd, SIOCSIFFLAGS, &ifr) < 0) {
         perror("cannot set device up");
-        return -1;
+        goto fail;
     }
 
     ifr.ifr_mtu = (int)cfg->mtu;
     if (ioctl(sockfd, SIOCSIFMTU, &ifr) < 0) {
         perror("cannot set MTU");
-        return -1;
+        goto fail;
     }
 
     if (cfg->vmacaddress_len > 0) {
         ifr.ifr_ifru.ifru_hwaddr = cfg->vmacaddress;
         if (ioctl(sockfd, SIOCSIFHWADDR, &ifr) < 0) {
             perror("cannot set MAC address");
-            return -1;
+            goto fail;
         }
     }
 
@@ -180,13 +197,13 @@
 
     if (ioctl(sockfd, SIOCSIFADDR, &ifr) < 0) {
         perror("cannot set device address");
-        return -1;
+        goto fail;
     }
 
     sai->sin_addr = cfg->vnetmask;
     if (ioctl(sockfd, SIOCSIFNETMASK, &ifr) < 0) {
         perror("cannot set device netmask");
-        return -1;
+        goto fail;
     }
 
     memset(&route, 0, sizeof(route));
@@ -206,9 +223,12 @@
 
     if (ioctl(sockfd, SIOCADDRT, &route) < 0) {
         perror("set route");
-        return -1;
+        goto fail;
     }
     return 0;
+fail:
+    close(sockfd);
+    return -1;
 }
 
 /* Child (--target-type=netns) */
@@ -224,6 +244,7 @@
         return tapfd;
     }
     if (do_config_network && configure_network(tapname, cfg) < 0) {
+        close(tapfd);
         return -1;
     }
     if (sendfd(sock, tapfd) < 0) {
@@ -232,6 +253,7 @@
         return -1;
     }
     fprintf(stderr, "sent tapfd=%d for %s\n", tapfd, tapname);
+    close(tapfd);
     close(sock);
     return 0;
 }

Reply via email to