diff --git a/src/lxc/caps.c b/src/lxc/caps.c index a697856ac5..5638c712e1 100644 --- a/src/lxc/caps.c +++ b/src/lxc/caps.c @@ -315,7 +315,11 @@ static int _real_caps_last_cap(void) char *ptr; int n; - if ((n = read(fd, buf, 31)) >= 0) { + again: + n = read(fd, buf, 31); + if (n < 0 && errno == EINTR) { + goto again; + } else if (n >= 0) { buf[n] = '\0'; errno = 0;