From 1d6200af164a2e7fe21b3f2bdadb3373dadae76c Mon Sep 17 00:00:00 2001 From: Runxi Yu Date: Mon, 17 Feb 2025 12:20:23 +0800 Subject: [PATCH] git_hooks_client.c: Get return value from unix socket --- git_hooks_client/git_hooks_client.c | 21 ++++++++++++++++++++- diff --git a/git_hooks_client/git_hooks_client.c b/git_hooks_client/git_hooks_client.c index 01af1966ba90241f42f76a26f71b0f7732f2df67..90501817474897a235bb4b146244b454193a455f 100644 --- a/git_hooks_client/git_hooks_client.c +++ b/git_hooks_client/git_hooks_client.c @@ -68,6 +68,25 @@ close(sock); return EXIT_FAILURE; } + char status_buf[1]; + ssize_t bytes_read = read(sock, status_buf, 1); + switch (bytes_read) { + case -1: + perror("read"); + close(sock); + return EXIT_FAILURE; + case 0: + dprintf(STDERR_FILENO, "fatal: unexpected EOF on internal socket\n"); + close(sock); + return EXIT_FAILURE; + case 1: + break; + default: + dprintf(STDERR_FILENO, "fatal: read returned unexpected value on internal socket\n"); + close(sock); + return EXIT_FAILURE; + } + close(sock); - return EXIT_SUCCESS; + return *status_buf; } -- 2.48.1