summaryrefslogtreecommitdiff
path: root/libpod/oci_conmon_linux.go
diff options
context:
space:
mode:
authorPaul Holzinger <pholzing@redhat.com>2021-09-09 14:05:25 +0200
committerPaul Holzinger <pholzing@redhat.com>2021-09-09 17:57:42 +0200
commit7cf22279d9499bfb7b2688cd2a6cb71617feba6e (patch)
tree6f82662c4043f6b9690c97fa4ef8a1db48eb1cc5 /libpod/oci_conmon_linux.go
parent784e1ae137587ba7130eff315ebd6965e444da03 (diff)
downloadpodman-7cf22279d9499bfb7b2688cd2a6cb71617feba6e.tar.gz
podman-7cf22279d9499bfb7b2688cd2a6cb71617feba6e.tar.bz2
podman-7cf22279d9499bfb7b2688cd2a6cb71617feba6e.zip
Fix conmon attach socket buffer size
The conmon buffer size is 8192, however the attach socket needs two extra bytes. The first byte of each message will be the STREAM type. The last byte is a null byte. So when we want to read 8192 message bytes we need to read 8193 bytes since the first one is special. check https://github.com/containers/conmon/blob/1ef246896b4f6566964ed861b98cd32d0e7bf7a2/src/ctr_stdio.c#L101-L107 This problem can be seen in podman-remote run/exec when it prints output with 8192 or more bytes. The output will miss the 8192 byte. Fixes #11496 Signed-off-by: Paul Holzinger <pholzing@redhat.com>
Diffstat (limited to 'libpod/oci_conmon_linux.go')
-rw-r--r--libpod/oci_conmon_linux.go4
1 files changed, 3 insertions, 1 deletions
diff --git a/libpod/oci_conmon_linux.go b/libpod/oci_conmon_linux.go
index 353e6af71..c00d83f95 100644
--- a/libpod/oci_conmon_linux.go
+++ b/libpod/oci_conmon_linux.go
@@ -46,7 +46,9 @@ import (
const (
// This is Conmon's STDIO_BUF_SIZE. I don't believe we have access to it
// directly from the Go code, so const it here
- bufferSize = conmonConfig.BufSize
+ // Important: The conmon attach socket uses an extra byte at the beginning of each
+ // message to specify the STREAM so we have to increase the buffer size by one
+ bufferSize = conmonConfig.BufSize + 1
)
// ConmonOCIRuntime is an OCI runtime managed by Conmon.