Hello community,

here is the log from the commit of package conmon for openSUSE:Leap:15.2 
checked in at 2020-03-19 08:35:53
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Leap:15.2/conmon (Old)
 and      /work/SRC/openSUSE:Leap:15.2/.conmon.new.3160 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "conmon"

Thu Mar 19 08:35:53 2020 rev:4 rq:786077 version:2.0.10

Changes:
--------
--- /work/SRC/openSUSE:Leap:15.2/conmon/conmon.changes  2020-03-10 
17:12:35.321400949 +0100
+++ /work/SRC/openSUSE:Leap:15.2/.conmon.new.3160/conmon.changes        
2020-03-19 08:35:59.205836190 +0100
@@ -2,11 +1,0 @@
-Thu Mar  5 08:06:24 UTC 2020 - Sascha Grunert <[email protected]>
-
-- Update to v2.0.11
-  - log: reject --log-tag with k8s-file
-  - chmod std files pipes
-  - adjust score to -1000 to prevent conmon from ever being OOM
-    killed
-  - container OOM: verify cgroup hasn't been cleaned up before
-    reporting OOM
-
--------------------------------------------------------------------

Old:
----
  conmon-2.0.11.tar.xz

New:
----
  conmon-2.0.10.tar.xz

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

Other differences:
------------------
++++++ conmon.spec ++++++
--- /var/tmp/diff_new_pack.MCb8CB/_old  2020-03-19 08:35:59.501836371 +0100
+++ /var/tmp/diff_new_pack.MCb8CB/_new  2020-03-19 08:35:59.505836374 +0100
@@ -17,7 +17,7 @@
 
 
 Name:           conmon
-Version:        2.0.11
+Version:        2.0.10
 Release:        0
 Summary:        An OCI container runtime monitor
 License:        Apache-2.0

++++++ _service ++++++
--- /var/tmp/diff_new_pack.MCb8CB/_old  2020-03-19 08:35:59.521836383 +0100
+++ /var/tmp/diff_new_pack.MCb8CB/_new  2020-03-19 08:35:59.521836383 +0100
@@ -2,8 +2,8 @@
 <service name="tar_scm" mode="disabled">
 <param name="url">https://github.com/containers/conmon</param>
 <param name="scm">git</param>
-<param name="versionformat">2.0.11</param>
-<param name="revision">v2.0.11</param>
+<param name="versionformat">2.0.10</param>
+<param name="revision">v2.0.10</param>
 </service>
 <service name="recompress" mode="disabled">
 <param name="file">conmon-*.tar</param>

++++++ conmon-2.0.11.tar.xz -> conmon-2.0.10.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/conmon-2.0.11/.cirrus.yml 
new/conmon-2.0.10/.cirrus.yml
--- old/conmon-2.0.11/.cirrus.yml       2020-03-04 19:07:40.000000000 +0100
+++ new/conmon-2.0.10/.cirrus.yml       2020-01-07 22:53:52.000000000 +0100
@@ -7,19 +7,15 @@
     ####
     # File to update in home-dir with task-specific env. var values
     ENVLIB: ".bash_profile"
-    GOPATH: "/var/tmp/go"
-    PATH: "${PATH}:${GOPATH}"
-    CRIO_REPO: "https://github.com/cri-o/cri-o.git";
-    CRIO_SLUG: "github.com/cri-o/cri-o"
-    CONMON_SLUG: "github.com/containers/conmon"
-
     # Overrides default location (/tmp/cirrus) for repo clone (will become 
$SRC)
-    CIRRUS_WORKING_DIR: "${GOPATH}/src/${CONMON_SLUG}"
+    CIRRUS_WORKING_DIR: "/tmp/conmon"
     # Required so $ENVLIB gets loaded and /bin/sh is not used
     CIRRUS_SHELL: "/bin/bash"
     # Save a little typing (path relative to $CIRRUS_WORKING_DIR)
     SCRIPT_BASE: "./contrib/cirrus"
     PACKER_BASE: "./contrib/cirrus/packer"
+    CRIO_REPO: "https://github.com/cri-o/cri-o.git";
+    CRIO_SLUG: "github.com/cri-o/cri-o"
     # Spoof self as travis, as cirrus has the same test issues as travis does
     TRAVIS: "true"
 
@@ -67,11 +63,10 @@
 # Every *_task runs in parallel in separate VMs. The name prefix only for 
reference
 # in WebUI, and will be followed by matrix details.  This task runs the 
integration
 # testing for every platform
-cri-o_integration_task:
+integration_task:
 
     depends_on:
         - 'config'
-        - 'fmt'
 
     gce_instance:
         # Generate multiple parallel tasks, covering all possible
@@ -86,20 +81,6 @@
             TEST_USERNS: 1
 
     setup_environment_script: '$SCRIPT_BASE/setup_environment.sh'
-    integration_test_script: '$SCRIPT_BASE/cri-o_test.sh'
-
-# this task runs the conmon integration tests
-integration_task:
-
-    depends_on:
-        - 'config'
-        - 'fmt'
-
-    gce_instance:
-        matrix:
-            # Images are generated separately, from build_images_task (below)
-            image_name: "${FEDORA_CACHE_IMAGE_NAME}"
-
     integration_test_script: '$SCRIPT_BASE/integration_test.sh'
 
 
@@ -127,6 +108,8 @@
 
 # Verify calls to bin/config were saved
 config_task:
+    env:
+        GOSRC: $CIRRUS_WORKING_DIR
     # Runs within Cirrus's "community cluster"
     container:
         matrix:
@@ -138,30 +121,12 @@
         memory: 12
 
     script:
-        - dnf install -y make glib2-devel git gcc golang
+        - dnf install -y make glib2-devel git gcc rpm-build golang
         - cd $CIRRUS_WORKING_DIR
         - GO111MODULE=on go mod init github.com/containers/conmon
         - make config
         - ./hack/tree_status.sh
 
-# Verify code was fmt'ed properly
-fmt_task:
-    # Runs within Cirrus's "community cluster"
-    container:
-        matrix:
-               # fedora:28 doesn't have go mod by default
-               # and we should only need one check to make sure
-               # config changes were synced
-            image: "${FEDORA_CONTAINER_FQIN}"
-        cpu: 4
-        memory: 12
-
-    script:
-        - dnf install -y make glib2-devel git gcc rpm-build clang golang
-        - cd $CIRRUS_WORKING_DIR
-        - make fmt
-        - ./hack/tree_status.sh
-
 # Test building of new cache-images for future PR testing, in this PR.
 # Output images will be stored only for a very short time, then automatically 
deleted.
 test_cache_images_task:
@@ -228,7 +193,6 @@
 static_binary_task:
     depends_on:
         - 'config'
-        - 'fmt'
     gce_instance:
         image_name: "${FEDORA_BASE_IMAGE}"
         cpu: 4
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/conmon-2.0.11/CODE-OF-CONDUCT.md 
new/conmon-2.0.10/CODE-OF-CONDUCT.md
--- old/conmon-2.0.11/CODE-OF-CONDUCT.md        2020-03-04 19:07:40.000000000 
+0100
+++ new/conmon-2.0.10/CODE-OF-CONDUCT.md        1970-01-01 01:00:00.000000000 
+0100
@@ -1,3 +0,0 @@
-## The conmon Project Community Code of Conduct
-
-The conmon Project follows the [Containers Community Code of 
Conduct](https://github.com/containers/common/blob/master/CODE-OF-CONDUCT.md).
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/conmon-2.0.11/Makefile new/conmon-2.0.10/Makefile
--- old/conmon-2.0.11/Makefile  2020-03-04 19:07:40.000000000 +0100
+++ new/conmon-2.0.10/Makefile  2020-01-07 22:53:52.000000000 +0100
@@ -72,9 +72,6 @@
        $(GO) build $(LDFLAGS) -tags "$(BUILDTAGS)" -o bin/config 
$(PROJECT)/cmd/conmon-config
                ( cd src && $(CURDIR)/bin/config )
 
-test: git-vars runner/conmon_test/*.go runner/conmon/*.go
-       $(GO) test $(LDFLAGS) -tags "$(BUILDTAGS)" 
$(PROJECT)/runner/conmon_test/
-
 src/cmsg.o: src/cmsg.c src/cmsg.h
 
 src/utils.o: src/utils.c src/utils.h
@@ -86,14 +83,6 @@
 bin:
        mkdir -p bin
 
-vendor:
-       export GO111MODULE=on \
-               $(GO) mod tidy && \
-               $(GO) mod vendor && \
-               $(GO) mod verify
-
-.PHONY: vendor
-
 .PHONY: clean
 clean:
        rm -rf bin/ src/*.o
@@ -116,6 +105,5 @@
 
 .PHONY: fmt
 fmt:
-       find . '(' -name '*.h' -o -name '*.c' ! -path './vendor/*' ')'  -exec 
clang-format -i {} \+
-       find . -name '*.go' ! -path './vendor/*' -exec gofmt -s -w {} \+
+       find . '(' -name '*.h' -o -name '*.c' ')'  -exec clang-format -i {} \+
        git diff --exit-code
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/conmon-2.0.11/VERSION new/conmon-2.0.10/VERSION
--- old/conmon-2.0.11/VERSION   2020-03-04 19:07:40.000000000 +0100
+++ new/conmon-2.0.10/VERSION   2020-01-07 22:53:52.000000000 +0100
@@ -1 +1 @@
-2.0.11
+2.0.10
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/conmon-2.0.11/contrib/cirrus/cri-o_test.sh 
new/conmon-2.0.10/contrib/cirrus/cri-o_test.sh
--- old/conmon-2.0.11/contrib/cirrus/cri-o_test.sh      2020-03-04 
19:07:40.000000000 +0100
+++ new/conmon-2.0.10/contrib/cirrus/cri-o_test.sh      1970-01-01 
01:00:00.000000000 +0100
@@ -1,33 +0,0 @@
-#!/bin/bash
-
-set -e
-source $(dirname $0)/lib.sh
-
-req_env_var "
-SRC $SRC
-CRIO_SRC $CRIO_SRC
-OS_RELEASE_ID $OS_RELEASE_ID
-OS_RELEASE_VER $OS_RELEASE_VER
-"
-
-cd "$CRIO_SRC"
-case "$OS_REL_VER" in
-    fedora-29)
-        PATCH="$SRC/$SCRIPT_BASE/network_bats.patch"
-        cd "$CRIO_SRC"
-        echo "WARNING: Applying $PATCH"
-        git apply --index --apply --ignore-space-change --recount "$PATCH"
-        ;;
-    *) bad_os_id_ver ;;
-esac
-
-# Assume cri-o and all dependencies are installed from packages
-# and conmon installed using build_and_replace_conmon()
-export CRIO_BINARY=/usr/bin/crio
-export CONMON_BINARY=/usr/libexec/crio/conmon
-export PAUSE_BINARY=/usr/libexec/crio/pause
-export CRIO_CNI_PLUGIN=/usr/libexec/cni
-
-echo "Executing cri-o integration tests (typical 10 - 20 min)"
-cd "$CRIO_SRC"
-timeout --foreground --kill-after=5m 60m ./test/test_runner.sh
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/conmon-2.0.11/contrib/cirrus/integration_test.sh 
new/conmon-2.0.10/contrib/cirrus/integration_test.sh
--- old/conmon-2.0.11/contrib/cirrus/integration_test.sh        2020-03-04 
19:07:40.000000000 +0100
+++ new/conmon-2.0.10/contrib/cirrus/integration_test.sh        2020-01-07 
22:53:52.000000000 +0100
@@ -4,17 +4,30 @@
 source $(dirname $0)/lib.sh
 
 req_env_var "
-       CRIO_REPO $CRIO_REPO
-       CRIO_SLUG $CRIO_SLUG
-       CONMON_SLUG $CONMON_SLUG
-       CIRRUS_WORKING_DIR $CIRRUS_WORKING_DIR
-       GOPATH $GOPATH
+SRC $SRC
+GOSRC $GOSRC
+OS_RELEASE_ID $OS_RELEASE_ID
+OS_RELEASE_VER $OS_RELEASE_VER
 "
 
-dnf install -y make glib2-devel git gcc golang
-setup_gopath
-cd $CIRRUS_WORKING_DIR
-make
-make install PREFIX=/usr # currently, the conmon location is hardcoded to 
/usr/bin/conmon
-GOCACHE=/tmp/go-build make vendor
-make test
+cd "$GOSRC"
+case "$OS_REL_VER" in
+    fedora-29)
+        PATCH="$SRC/$SCRIPT_BASE/network_bats.patch"
+        cd "$GOSRC"
+        echo "WARNING: Applying $PATCH"
+        git apply --index --apply --ignore-space-change --recount "$PATCH"
+        ;;
+    *) bad_os_id_ver ;;
+esac
+
+# Assume cri-o and all dependencies are installed from packages
+# and conmon installed using build_and_replace_conmon()
+export CRIO_BINARY=/usr/bin/crio
+export CONMON_BINARY=/usr/libexec/crio/conmon
+export PAUSE_BINARY=/usr/libexec/crio/pause
+export CRIO_CNI_PLUGIN=/usr/libexec/cni
+
+echo "Executing cri-o integration tests (typical 10 - 20 min)"
+cd "$GOSRC"
+timeout --foreground --kill-after=5m 60m ./test/test_runner.sh
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/conmon-2.0.11/contrib/cirrus/lib.sh 
new/conmon-2.0.10/contrib/cirrus/lib.sh
--- old/conmon-2.0.11/contrib/cirrus/lib.sh     2020-03-04 19:07:40.000000000 
+0100
+++ new/conmon-2.0.10/contrib/cirrus/lib.sh     2020-01-07 22:53:52.000000000 
+0100
@@ -166,42 +166,32 @@
     req_env_var "
         CRIO_REPO $CRIO_REPO
         CRIO_SLUG $CRIO_SLUG
-        CONMON_SLUG $CONMON_SLUG
     "
     echo "Configuring persistent Go environment for all users"
     sudo mkdir -p /var/tmp/go/src
     sudo chown -R $USER:$USER /var/tmp/go
     sudo chmod g=rws /var/tmp/go
     ENVLIB=/etc/profile.d/go.sh
-       # configure GOPATH if not set
     if ! grep -q GOPATH $ENVLIB
     then
         sudo tee "$ENVLIB" << EOF
 export GOPATH=/var/tmp/go
+export GOSRC=\$GOPATH/src/$CRIO_SLUG
 export PATH=\$PATH:\$GOPATH/bin
 EOF
     source $ENVLIB
     fi
-
-       # configure CRIO_SRC if not set
-    if ! grep -q CRIO_SRC $ENVLIB
-    then
-        sudo tee "$ENVLIB" << EOF
-export CRIO_SRC=\$GOPATH/src/$CRIO_SLUG
-EOF
-    source $ENVLIB
-    fi
 }
 
 install_crio_repo() {
     req_env_var "
         GOPATH $GOPATH
-        CRIO_SRC $CRIO_SRC
+        GOSRC $GOSRC
         CRIO_REPO $CRIO_REPO
     "
     echo "Cloning current CRI-O Source for faster access later"
-    sudo rm -rf "$CRIO_SRC"  # just in case
-    ooe.sh git clone $CRIO_REPO $CRIO_SRC
+    sudo rm -rf "$GOSRC"  # just in case
+    ooe.sh git clone $CRIO_REPO $GOSRC
 
     # Install CRI-O
     cd crio
@@ -212,7 +202,7 @@
 install_testing_deps() {
     req_env_var "
         GOPATH $GOPATH
-        CRIO_SRC $CRIO_SRC
+        GOSRC $GOSRC
     "
 
     echo "Installing required go packages into \$GOPATH"
@@ -236,7 +226,7 @@
     rm -rf /tmp/bats
 
     echo "Installing helper script for CNI plugin test"
-    cd "$CRIO_SRC"
+    cd "$GOSRC"
     sudo mkdir -p /opt/cni/bin/
     # Search path for helper is difficult to control
     ooe.sh sudo install -D -m 0755 test/cni_plugin_helper.bash 
/usr/libexec/cni/
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/conmon-2.0.11/contrib/cirrus/setup_environment.sh 
new/conmon-2.0.10/contrib/cirrus/setup_environment.sh
--- old/conmon-2.0.11/contrib/cirrus/setup_environment.sh       2020-03-04 
19:07:40.000000000 +0100
+++ new/conmon-2.0.10/contrib/cirrus/setup_environment.sh       2020-01-07 
22:53:52.000000000 +0100
@@ -68,7 +68,7 @@
             install_testing_deps
             build_and_replace_conmon
 
-            cd "$CRIO_SRC"  # cri-o source
+            cd "$GOSRC"  # cri-o source
             echo "Building binaries required for testing"
             ooe.sh make test-binaries
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/conmon-2.0.11/go.sum new/conmon-2.0.10/go.sum
--- old/conmon-2.0.11/go.sum    2020-03-04 19:07:40.000000000 +0100
+++ new/conmon-2.0.10/go.sum    1970-01-01 01:00:00.000000000 +0100
@@ -1,31 +0,0 @@
-github.com/fsnotify/fsnotify v1.4.7 
h1:IXs+QLmnXW2CcXuY+8Mzv/fWEsPGWxqefPtCP5CnV9I=
-github.com/fsnotify/fsnotify v1.4.7/go.mod 
h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
-github.com/golang/protobuf v1.2.0 
h1:P3YflyNX/ehuJFLhxviNdFxQPkGK5cDcApsge1SqnvM=
-github.com/golang/protobuf v1.2.0/go.mod 
h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
-github.com/hpcloud/tail v1.0.0 h1:nfCOvKYfkgYP8hkirhJocXT2+zOD8yUNjXaWfTlyFKI=
-github.com/hpcloud/tail v1.0.0/go.mod 
h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU=
-github.com/onsi/ginkgo v1.6.0/go.mod 
h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
-github.com/onsi/ginkgo v1.11.0 h1:JAKSXpt1YjtLA7YpPiqO9ss6sNXEsPfSGdwN0UHqzrw=
-github.com/onsi/ginkgo v1.11.0/go.mod 
h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
-github.com/onsi/gomega v1.8.1 h1:C5Dqfs/LeauYDX0jJXIe2SWmwCbGzx9yF8C8xy3Lh34=
-github.com/onsi/gomega v1.8.1/go.mod 
h1:Ho0h+IUsWyvy1OpqCwxlQ/21gkhVunqlU8fDGcoTdcA=
-github.com/pkg/errors v0.9.0 h1:J8lpUdobwIeCI7OiSxHqEwJUKvJwicL5+3v1oe2Yb4k=
-github.com/pkg/errors v0.9.0/go.mod 
h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
-golang.org/x/net v0.0.0-20180906233101-161cd47e91fd 
h1:nTDtHvHSdCn1m6ITfMRqtOd/9+7a3s8RBNOZ3eYZzJA=
-golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod 
h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
-golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f 
h1:wMNYb4v58l5UBM7MYRLPG6ZhfOqbKu7X5eyFl8ZhKvA=
-golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod 
h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
-golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e 
h1:o3PsSEY8E4eXWkXrIP9YJALUkVZqzHJT5DOasTyn8Vs=
-golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod 
h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
-golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg=
-golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
-golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7 
h1:9zdDQZ7Thm29KFXgAX/+yaf3eVbP7djjWp/dXAppNCc=
-golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod 
h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
-gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 
h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM=
-gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod 
h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
-gopkg.in/fsnotify.v1 v1.4.7 h1:xOHLXZwVvI9hhs+cLKq5+I5onOuwQLhQwiu63xxlHs4=
-gopkg.in/fsnotify.v1 v1.4.7/go.mod 
h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys=
-gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 
h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ=
-gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod 
h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw=
-gopkg.in/yaml.v2 v2.2.4 h1:/eiJrUcujPVeJ3xlSWaiNi3uSVmDGBK1pDHUHAnao1I=
-gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/conmon-2.0.11/runner/conmon/conmon.go 
new/conmon-2.0.10/runner/conmon/conmon.go
--- old/conmon-2.0.11/runner/conmon/conmon.go   2020-03-04 19:07:40.000000000 
+0100
+++ new/conmon-2.0.10/runner/conmon/conmon.go   1970-01-01 01:00:00.000000000 
+0100
@@ -1,78 +0,0 @@
-package conmon
-
-import (
-       "errors"
-       "io"
-       "os/exec"
-)
-
-var (
-       ErrConmonNotStarted = errors.New("conmon instance is not started")
-)
-
-type ConmonInstance struct {
-       args    []string
-       cmd     *exec.Cmd
-       started bool
-       path    string
-       stdout  io.Writer
-       stderr  io.Writer
-}
-
-func NewConmonInstance(options ...ConmonOption) (*ConmonInstance, error) {
-       ci := &ConmonInstance{
-               args: make([]string, 0),
-       }
-       for _, option := range options {
-               if err := option(ci); err != nil {
-                       return nil, err
-               }
-       }
-
-       // TODO verify path more
-       if ci.path == "" {
-               return nil, errors.New("conmon path not specified")
-       }
-
-       ci.cmd = exec.Command(ci.path, ci.args...)
-
-       ci.cmd.Stdout = ci.stdout
-       ci.cmd.Stderr = ci.stderr
-       return ci, nil
-}
-
-func (ci *ConmonInstance) Start() error {
-       ci.started = true
-       return ci.cmd.Start()
-}
-
-func (ci *ConmonInstance) Wait() error {
-       if !ci.started {
-               return ErrConmonNotStarted
-       }
-       return ci.cmd.Wait()
-}
-
-func (ci *ConmonInstance) Stdout() (io.Writer, error) {
-       if !ci.started {
-               return nil, ErrConmonNotStarted
-       }
-       return ci.cmd.Stdout, nil
-}
-
-func (ci *ConmonInstance) Stderr() (io.Writer, error) {
-       if !ci.started {
-               return nil, errors.New("conmon instance is not started")
-       }
-       return ci.cmd.Stderr, nil
-}
-
-func CreateAndExecConmon(options ...ConmonOption) (*ConmonInstance, error) {
-       ci, err := NewConmonInstance(options...)
-       if err != nil {
-               return nil, err
-       }
-
-       ci.Start()
-       return ci, nil
-}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/conmon-2.0.11/runner/conmon/options.go 
new/conmon-2.0.10/runner/conmon/options.go
--- old/conmon-2.0.11/runner/conmon/options.go  2020-03-04 19:07:40.000000000 
+0100
+++ new/conmon-2.0.10/runner/conmon/options.go  1970-01-01 01:00:00.000000000 
+0100
@@ -1,68 +0,0 @@
-package conmon
-
-import (
-       "fmt"
-       "io"
-)
-
-type ConmonOption func(*ConmonInstance) error
-
-func WithVersion() ConmonOption {
-       return func(ci *ConmonInstance) error {
-               return ci.addArgs("--version")
-       }
-}
-
-func WithStdout(stdout io.Writer) ConmonOption {
-       return func(ci *ConmonInstance) error {
-               ci.stdout = stdout
-               return nil
-       }
-}
-
-func WithStderr(stderr io.Writer) ConmonOption {
-       return func(ci *ConmonInstance) error {
-               ci.stderr = stderr
-               return nil
-       }
-}
-
-func WithPath(path string) ConmonOption {
-       return func(ci *ConmonInstance) error {
-               ci.path = path
-               return nil
-       }
-}
-
-func WithContainerID(ctrID string) ConmonOption {
-       return func(ci *ConmonInstance) error {
-               return ci.addArgs("--cid", ctrID)
-       }
-}
-
-func WithContainerUUID(ctrUUID string) ConmonOption {
-       return func(ci *ConmonInstance) error {
-               return ci.addArgs("--cuuid", ctrUUID)
-       }
-}
-
-func WithRuntimePath(path string) ConmonOption {
-       return func(ci *ConmonInstance) error {
-               return ci.addArgs("--runtime", path)
-       }
-}
-
-func WithLogDriver(driver, path string) ConmonOption {
-       return func(ci *ConmonInstance) error {
-               fullDriver := path
-               if driver != "" {
-                       fullDriver = fmt.Sprintf("%s:%s", driver, path)
-               }
-               return ci.addArgs("--log-path", fullDriver)
-       }
-}
-
-func (ci *ConmonInstance) addArgs(args ...string) error {
-       ci.args = append(ci.args, args...)
-       return nil
-}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/conmon-2.0.11/runner/conmon_test/conmon_test.go 
new/conmon-2.0.10/runner/conmon_test/conmon_test.go
--- old/conmon-2.0.11/runner/conmon_test/conmon_test.go 2020-03-04 
19:07:40.000000000 +0100
+++ new/conmon-2.0.10/runner/conmon_test/conmon_test.go 1970-01-01 
01:00:00.000000000 +0100
@@ -1,200 +0,0 @@
-package conmon_test
-
-import (
-       "bytes"
-       "fmt"
-       "io/ioutil"
-       "os"
-       "path/filepath"
-
-       "github.com/containers/conmon/runner/conmon"
-       . "github.com/onsi/ginkgo"
-       . "github.com/onsi/gomega"
-)
-
-var (
-       conmonPath  = "/usr/bin/conmon"
-       ctrID       = "abcdefghijklm"
-       validPath   = "/tmp"
-       invalidPath = "/not/a/path"
-)
-
-func getConmonOutputGivenOptions(options ...conmon.ConmonOption) (string, 
string) {
-       var stdout bytes.Buffer
-       var stderr bytes.Buffer
-
-       options = append(options, conmon.WithStdout(&stdout), 
conmon.WithStderr(&stderr))
-
-       ci, err := conmon.CreateAndExecConmon(options...)
-       Expect(err).To(BeNil())
-
-       ci.Wait()
-
-       return stdout.String(), stderr.String()
-}
-
-var _ = Describe("conmon", func() {
-       Describe("version", func() {
-               It("Should return conmon version", func() {
-                       out, _ := getConmonOutputGivenOptions(
-                               conmon.WithVersion(),
-                               conmon.WithPath(conmonPath),
-                       )
-                       Expect(out).To(ContainSubstring("conmon version"))
-                       Expect(out).To(ContainSubstring("commit"))
-               })
-       })
-       Describe("no container ID", func() {
-               It("should fail", func() {
-                       _, err := getConmonOutputGivenOptions(
-                               conmon.WithPath(conmonPath),
-                       )
-                       Expect(err).To(ContainSubstring("conmon: Container ID 
not provided. Use --cid"))
-               })
-       })
-       Describe("no container UUID", func() {
-               It("should fail", func() {
-                       _, err := getConmonOutputGivenOptions(
-                               conmon.WithPath(conmonPath),
-                               conmon.WithContainerID(ctrID),
-                       )
-                       Expect(err).To(ContainSubstring("Container UUID not 
provided. Use --cuuid"))
-               })
-       })
-       Describe("runtime path", func() {
-               It("no path should fail", func() {
-                       _, err := getConmonOutputGivenOptions(
-                               conmon.WithPath(conmonPath),
-                               conmon.WithContainerID(ctrID),
-                               conmon.WithContainerUUID(ctrID),
-                       )
-                       Expect(err).To(ContainSubstring("Runtime path not 
provided. Use --runtime"))
-               })
-               It("invalid path should fail", func() {
-                       _, err := getConmonOutputGivenOptions(
-                               conmon.WithPath(conmonPath),
-                               conmon.WithContainerID(ctrID),
-                               conmon.WithContainerUUID(ctrID),
-                               conmon.WithRuntimePath(invalidPath),
-                       )
-                       Expect(err).To(ContainSubstring(fmt.Sprintf("Runtime 
path %s is not valid", invalidPath)))
-               })
-       })
-       Describe("ctr logs", func() {
-               var tmpDir string
-               var tmpLogPath string
-               BeforeEach(func() {
-                       d, err := ioutil.TempDir(os.TempDir(), "conmon-")
-                       Expect(err).To(BeNil())
-                       tmpDir = d
-                       tmpLogPath = filepath.Join(tmpDir, "log")
-               })
-               AfterEach(func() {
-                       Expect(os.RemoveAll(tmpDir)).To(BeNil())
-               })
-               It("no log driver should fail", func() {
-                       _, stderr := getConmonOutputGivenOptions(
-                               conmon.WithPath(conmonPath),
-                               conmon.WithContainerID(ctrID),
-                               conmon.WithContainerUUID(ctrID),
-                               conmon.WithRuntimePath(validPath),
-                       )
-                       Expect(stderr).To(ContainSubstring("Log driver not 
provided. Use --log-path"))
-               })
-               It("log driver as path should pass", func() {
-                       _, stderr := getConmonOutputGivenOptions(
-                               conmon.WithPath(conmonPath),
-                               conmon.WithContainerID(ctrID),
-                               conmon.WithContainerUUID(ctrID),
-                               conmon.WithRuntimePath(validPath),
-                               conmon.WithLogDriver("", tmpLogPath),
-                       )
-                       Expect(stderr).To(BeEmpty())
-
-                       _, err := os.Stat(tmpLogPath)
-                       Expect(err).To(BeNil())
-               })
-               It("log driver as journald should pass", func() {
-                       _, stderr := getConmonOutputGivenOptions(
-                               conmon.WithPath(conmonPath),
-                               conmon.WithContainerID(ctrID),
-                               conmon.WithContainerUUID(ctrID),
-                               conmon.WithRuntimePath(validPath),
-                               conmon.WithLogDriver("journald", ""),
-                       )
-                       Expect(stderr).To(BeEmpty())
-               })
-               It("log driver as journald with short cid should fail", func() {
-                       // conmon requires a cid of len > 12
-                       shortCtrID := "abcdefghijkl"
-                       _, stderr := getConmonOutputGivenOptions(
-                               conmon.WithPath(conmonPath),
-                               conmon.WithContainerID(shortCtrID),
-                               conmon.WithContainerUUID(shortCtrID),
-                               conmon.WithRuntimePath(validPath),
-                               conmon.WithLogDriver("journald", ""),
-                       )
-                       Expect(stderr).To(ContainSubstring("Container ID must 
be longer than 12 characters"))
-               })
-               It("log driver as k8s-file with path should pass", func() {
-                       _, stderr := getConmonOutputGivenOptions(
-                               conmon.WithPath(conmonPath),
-                               conmon.WithContainerID(ctrID),
-                               conmon.WithContainerUUID(ctrID),
-                               conmon.WithRuntimePath(validPath),
-                               conmon.WithLogDriver("k8s-file", tmpLogPath),
-                       )
-                       Expect(stderr).To(BeEmpty())
-
-                       _, err := os.Stat(tmpLogPath)
-                       Expect(err).To(BeNil())
-               })
-               It("log driver as k8s-file with invalid path should fail", 
func() {
-                       _, stderr := getConmonOutputGivenOptions(
-                               conmon.WithPath(conmonPath),
-                               conmon.WithContainerID(ctrID),
-                               conmon.WithContainerUUID(ctrID),
-                               conmon.WithRuntimePath(validPath),
-                               conmon.WithLogDriver("k8s-file", invalidPath),
-                       )
-                       Expect(stderr).To(ContainSubstring("Failed to open log 
file"))
-               })
-               It("log driver as invalid driver should fail", func() {
-                       invalidLogDriver := "invalid"
-                       _, stderr := getConmonOutputGivenOptions(
-                               conmon.WithPath(conmonPath),
-                               conmon.WithContainerID(ctrID),
-                               conmon.WithContainerUUID(ctrID),
-                               conmon.WithRuntimePath(validPath),
-                               conmon.WithLogDriver("invalid", tmpLogPath),
-                       )
-                       Expect(stderr).To(ContainSubstring("No such log driver 
" + invalidLogDriver))
-               })
-               It("multiple log drivers should pass", func() {
-                       _, stderr := getConmonOutputGivenOptions(
-                               conmon.WithPath(conmonPath),
-                               conmon.WithContainerID(ctrID),
-                               conmon.WithContainerUUID(ctrID),
-                               conmon.WithRuntimePath(validPath),
-                               conmon.WithLogDriver("k8s-file", tmpLogPath),
-                               conmon.WithLogDriver("journald", ""),
-                       )
-                       Expect(stderr).To(BeEmpty())
-
-                       _, err := os.Stat(tmpLogPath)
-                       Expect(err).To(BeNil())
-               })
-               It("multiple log drivers with one invalid should fail", func() {
-                       invalidLogDriver := "invalid"
-                       _, stderr := getConmonOutputGivenOptions(
-                               conmon.WithPath(conmonPath),
-                               conmon.WithContainerID(ctrID),
-                               conmon.WithContainerUUID(ctrID),
-                               conmon.WithRuntimePath(validPath),
-                               conmon.WithLogDriver("k8s-file", tmpLogPath),
-                               conmon.WithLogDriver("invalid", tmpLogPath),
-                       )
-                       Expect(stderr).To(ContainSubstring("No such log driver 
" + invalidLogDriver))
-               })
-       })
-})
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/conmon-2.0.11/runner/conmon_test/suite_test.go 
new/conmon-2.0.10/runner/conmon_test/suite_test.go
--- old/conmon-2.0.11/runner/conmon_test/suite_test.go  2020-03-04 
19:07:40.000000000 +0100
+++ new/conmon-2.0.10/runner/conmon_test/suite_test.go  1970-01-01 
01:00:00.000000000 +0100
@@ -1,13 +0,0 @@
-package conmon_test
-
-import (
-       "testing"
-
-       . "github.com/onsi/ginkgo"
-       . "github.com/onsi/gomega"
-)
-
-func TestConmon(t *testing.T) {
-       RegisterFailHandler(Fail)
-       RunSpecs(t, "Conmon Suite")
-}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/conmon-2.0.11/src/conmon.c 
new/conmon-2.0.10/src/conmon.c
--- old/conmon-2.0.11/src/conmon.c      2020-03-04 19:07:40.000000000 +0100
+++ new/conmon-2.0.10/src/conmon.c      2020-01-07 22:53:52.000000000 +0100
@@ -100,8 +100,7 @@
        {"no-pivot", 0, 0, G_OPTION_ARG_NONE, &opt_no_pivot, "Do not use 
pivot_root", NULL},
        {"replace-listen-pid", 0, 0, G_OPTION_ARG_NONE, 
&opt_replace_listen_pid, "Replace listen pid if set for oci-runtime pid", NULL},
        {"bundle", 'b', 0, G_OPTION_ARG_STRING, &opt_bundle_path, "Bundle 
path", NULL},
-       {"persist-dir", '0', 0, G_OPTION_ARG_STRING, &opt_persist_path,
-        "Persistent directory for a container that can be used for storing 
container data", NULL},
+       {"persist-dir", '0', 0, G_OPTION_ARG_STRING, &opt_persist_path, 
"Persistent directory for a container that can be used for storing container 
data", NULL},
        {"pidfile", 0, 0, G_OPTION_ARG_STRING, &opt_container_pid_file, "PID 
file (DEPRECATED)", NULL},
        {"container-pidfile", 'p', 0, G_OPTION_ARG_STRING, 
&opt_container_pid_file, "Container PID file", NULL},
        {"conmon-pidfile", 'P', 0, G_OPTION_ARG_STRING, &opt_conmon_pid_file, 
"Conmon daemon PID file", NULL},
@@ -125,7 +124,7 @@
        {NULL, 0, 0, 0, NULL, NULL, NULL}};
 
 #define CGROUP_ROOT "/sys/fs/cgroup"
-#define OOM_SCORE "-1000"
+#define OOM_SCORE "-999"
 
 static ssize_t write_all(int fd, const void *buf, size_t count)
 {
@@ -515,8 +514,7 @@
  * this can be used for v1 and v2 OOMS
  * returns 0 on success, negative value on failure
  */
-static int write_oom_files()
-{
+static int write_oom_files() {
        _cleanup_close_ int oom_fd = -1;
        ninfo("OOM received");
        if (opt_persist_path) {
@@ -534,63 +532,31 @@
        return oom_fd >= 0 ? 0 : -1;
 }
 
-/* user_data is expected to be the container's cgroup.event_control file,
- * used to verify the cgroup hasn't been cleaned up */
-static gboolean oom_cb_cgroup_v1(int fd, GIOCondition condition, gpointer 
user_data)
+static gboolean oom_cb_cgroup_v1(int fd, GIOCondition condition, G_GNUC_UNUSED 
gpointer user_data)
 {
-       char *cgroup_event_control_path = (char *)user_data;
-       uint64_t event_count;
+       uint64_t oom_event;
        ssize_t num_read = 0;
 
-       if ((condition & G_IO_IN) == 0) {
-               /* End of input */
-               close(fd);
-               oom_event_fd = -1;
-               free(cgroup_event_control_path);
-               return G_SOURCE_REMOVE;
-       }
-
-       num_read = read(fd, &event_count, sizeof(uint64_t));
-       if (num_read < 0) {
-               nwarn("Failed to read oom event from eventfd");
-               return G_SOURCE_CONTINUE;
-       }
+       if ((condition & G_IO_IN) != 0) {
+               num_read = read(fd, &oom_event, sizeof(uint64_t));
+               if (num_read < 0) {
+                       nwarn("Failed to read oom event from eventfd");
+                       return G_SOURCE_CONTINUE;
+               }
 
-       if (num_read == 0) {
-               close(fd);
-               oom_event_fd = -1;
-               free(cgroup_event_control_path);
-               return G_SOURCE_REMOVE;
-       }
+               if (num_read > 0) {
+                       if (num_read != sizeof(uint64_t))
+                               nwarn("Failed to read full oom event from 
eventfd");
+                       write_oom_files();
 
-       if (num_read != sizeof(uint64_t)) {
-               nwarn("Failed to read full oom event from eventfd");
-               return G_SOURCE_CONTINUE;
-       }
-
-       ndebugf("Memory cgroup event count: %ld", (long)event_count);
-       if (event_count == 0) {
-               nwarn("Unexpected event count (zero)");
-               return G_SOURCE_CONTINUE;
-       }
-       /* attempt to read the container's cgroup path.
-        * if we can't, the cgroup has probably been cleaned up.
-        * In all likelihood, this means we received an event on the eventfd
-        * because the memory.oom_control file was removed, not because of an 
OOM
-        */
-       if (access(cgroup_event_control_path, F_OK) < 0) {
-               ndebugf("Memory cgroup removal event received");
-               /* if event_count == 1, we know the only event triggered was a 
cgroup removal
-                * if it was greater than 1, we know the cgroup oomed, and then 
was cleaned up.
-                */
-               if (event_count == 1)
                        return G_SOURCE_CONTINUE;
+               }
        }
 
-       ninfo("OOM event received");
-       write_oom_files();
-
-       return G_SOURCE_CONTINUE;
+       /* End of input */
+       close(fd);
+       oom_event_fd = -1;
+       return G_SOURCE_REMOVE;
 }
 
 
@@ -752,7 +718,7 @@
  * line_process_func should return TRUE if it succeeds, and FALSE if it fails
  * to process the line.
  */
-static gboolean read_from_ctrl_buffer(int fd, gboolean 
(*line_process_func)(char *))
+static gboolean read_from_ctrl_buffer(int fd, 
gboolean(*line_process_func)(char*))
 {
        static char ctlbuf[CTLBUFSZ];
        static int readsz = CTLBUFSZ - 1;
@@ -811,7 +777,7 @@
  * and either writes to the winsz fd (to handle terminal resize events)
  * or reopens log files.
  */
-static gboolean process_terminal_ctrl_line(char *line)
+static gboolean process_terminal_ctrl_line(char* line)
 {
        int ctl_msg_type, height, width, ret = -1;
        _cleanup_free_ char *hw_str = NULL;
@@ -856,7 +822,7 @@
  * after the terminal_ctrl fd receives a winsz event.
  * It reads a height and length, and resizes the pty with it.
  */
-static gboolean process_winsz_ctrl_line(char *line)
+static gboolean process_winsz_ctrl_line(char * line)
 {
        int height, width, ret = -1;
        ret = sscanf(line, "%d %d\n", &height, &width);
@@ -1096,8 +1062,7 @@
        return attach_symlink_dir_path;
 }
 
-static void setup_fifo(int *fifo_r, int *fifo_w, char *filename, char 
*error_var_name)
-{
+static void setup_fifo(int *fifo_r, int *fifo_w, char * filename, char* 
error_var_name) {
        _cleanup_free_ char *fifo_path = g_build_filename(opt_bundle_path, 
filename, NULL);
 
        if (!fifo_r || !fifo_w)
@@ -1113,8 +1078,7 @@
                pexitf("Failed to open %s write half", error_var_name);
 }
 
-static void setup_console_fifo()
-{
+static void setup_console_fifo() {
        setup_fifo(&winsz_fd_r, &winsz_fd_w, "winsz", "window resize control 
fifo");
        ninfof("winsz read side: %d, winsz write side: %d", winsz_fd_r, 
winsz_fd_r);
 }
@@ -1176,8 +1140,7 @@
                return;
        }
 
-       /* this will be cleaned up in oom_cb_cgroup_v1 */
-       char *memory_cgroup_file_path = g_build_filename(memory_cgroup_path, 
"cgroup.event_control", NULL);
+       _cleanup_free_ char *memory_cgroup_file_path = 
g_build_filename(memory_cgroup_path, "cgroup.event_control", NULL);
 
        if ((cfd = open(memory_cgroup_file_path, O_WRONLY | O_CLOEXEC)) == -1) {
                nwarnf("Failed to open %s", memory_cgroup_file_path);
@@ -1195,7 +1158,7 @@
        if (write_all(cfd, data, strlen(data)) < 0)
                pexit("Failed to write to cgroup.event_control");
 
-       g_unix_fd_add(oom_event_fd, G_IO_IN, oom_cb_cgroup_v1, 
memory_cgroup_file_path);
+       g_unix_fd_add(oom_event_fd, G_IO_IN, oom_cb_cgroup_v1, NULL);
 }
 
 static void setup_oom_handling(int pid)
@@ -1584,22 +1547,16 @@
                        slavefd_stdin = dev_null_r;
                if (dup2(slavefd_stdin, STDIN_FILENO) < 0)
                        pexit("Failed to dup over stdin");
-               if (fchmod(STDIN_FILENO, 0777) < 0)
-                       nwarn("Failed to chown stdin");
 
                if (slavefd_stdout < 0)
                        slavefd_stdout = dev_null_w;
                if (dup2(slavefd_stdout, STDOUT_FILENO) < 0)
                        pexit("Failed to dup over stdout");
-               if (fchmod(STDOUT_FILENO, 0777) < 0)
-                       nwarn("Failed to chown stdout");
 
                if (slavefd_stderr < 0)
                        slavefd_stderr = slavefd_stdout;
                if (dup2(slavefd_stderr, STDERR_FILENO) < 0)
                        pexit("Failed to dup over stderr");
-               if (fchmod(STDERR_FILENO, 0777) < 0)
-                       nwarn("Failed to chown stderr");
 
                /* If LISTEN_PID env is set, we need to set the LISTEN_PID
                   it to the new child process */
@@ -1786,11 +1743,7 @@
        int exit_status = -1;
        const char *exit_message = NULL;
 
-       /*
-        * If timed_out is TRUE but container_pid is -1, the process must have 
died before
-        * the timer elapsed. Ignore the timeout and treat it like a normal 
container exit.
-        */
-       if (timed_out && container_pid > 0) {
+       if (timed_out) {
                pid_t process_group = getpgid(container_pid);
 
                if (process_group > 0)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/conmon-2.0.11/src/ctr_logging.c 
new/conmon-2.0.10/src/ctr_logging.c
--- old/conmon-2.0.11/src/ctr_logging.c 2020-03-04 19:07:40.000000000 +0100
+++ new/conmon-2.0.10/src/ctr_logging.c 2020-01-07 22:53:52.000000000 +0100
@@ -83,9 +83,6 @@
                k8s_log_fd = open(k8s_log_path, O_WRONLY | O_APPEND | O_CREAT | 
O_CLOEXEC, 0600);
                if (k8s_log_fd < 0)
                        pexit("Failed to open log file");
-
-               if (!use_journald_logging && tag)
-                       nexit("k8s-file doesn't support --log-tag");
        }
 
        if (use_journald_logging) {
@@ -109,7 +106,7 @@
                container_id = g_strdup_printf("CONTAINER_ID=%s", short_cuuid);
                if (tag) {
                        container_tag = g_strdup_printf("CONTAINER_TAG=%s", 
tag);
-                       container_tag_len = strlen(container_tag);
+                       container_tag_len = strlen (container_tag);
                }
 
                /* To maintain backwards compatibility with older versions of 
conmon, we need to skip setting
@@ -433,7 +430,7 @@
        struct timespec ts;
        char off_sign = '+';
        int off, len, err = -1;
-
+        
        if (clock_gettime(CLOCK_REALTIME, &ts) < 0) {
                /* If CLOCK_REALTIME is not supported, we set nano seconds to 0 
*/
                if (errno == EINVAL) {


Reply via email to