#include "ostree-libarchive-private.h"
#include "ostree-sysroot-private.h"
#include "otutil.h"
+#include <gio/gunixinputstream.h>
#include <string.h>
#include <sys/mount.h>
#include <sys/stat.h>
fd = openat (AT_FDCWD, "/dev/kmsg", O_NONBLOCK | O_RDONLY | O_CLOEXEC);
if (fd == -1)
return glnx_throw_errno_prefix (error, "openat(/dev/kmsg)");
- unsigned max_lines = 5; // no need to read dozens of messages, ours comes really early
+ g_autoptr (GInputStream) istream = g_unix_input_stream_new (g_steal_fd (&fd), TRUE);
+ g_autoptr (GDataInputStream) stream = g_data_input_stream_new (istream);
+ unsigned int max_lines = 5; // no need to read dozens of messages, ours comes really early
while (*out_enabled != TRUE && max_lines > 0)
{
- char buf[1024];
- ssize_t len = TEMP_FAILURE_RETRY (read (fd, buf, sizeof (buf) - 1));
- if (len < 0)
- break;
- buf[len] = '\0';
- *out_enabled = strstr (buf, "Secure-IPL enabled") != NULL;
+ gsize len = 0;
+ g_autofree char *line = g_data_input_stream_read_line (stream, &len, NULL, error);
+ *out_enabled = strstr (line, "Secure-IPL enabled") != NULL;
--max_lines;
}
ot_journal_print (LOG_INFO, "s390x: kmsg: Secure Boot enabled: %d", *out_enabled);