From ea6e4a13a3027dcdedcc037143a84c28d3c2bd79 Mon Sep 17 00:00:00 2001 From: Pavel Cahyna Date: Thu, 27 Jul 2023 14:26:54 +0200 Subject: [PATCH] Regenerate patch because of whitespace differences Related: rhbz2224569 --- ...-received-msg-id-against-expectation.patch | 93 +++++++------------ 1 file changed, 32 insertions(+), 61 deletions(-) diff --git a/0021-open-checking-received-msg-id-against-expectation.patch b/0021-open-checking-received-msg-id-against-expectation.patch index ea57de1..917756b 100644 --- a/0021-open-checking-received-msg-id-against-expectation.patch +++ b/0021-open-checking-received-msg-id-against-expectation.patch @@ -1,43 +1,26 @@ -From 51634fd77c836e3cb5acd9b9b72e7ede20321d56 Mon Sep 17 00:00:00 2001 -From: Patrick Venture -Date: Tue, 4 Dec 2018 16:47:09 -0800 -Subject: [PATCH] open: checking received msg id against expectation - -Check the received IPMI response message id against -the id expected given the IPMI request. They need to -match. It is possible that request A times out, -request B is sent, and then request A responds to the -request B. The value for request B may be behind it -in the queue. - -Note: This may only be possible if the file is kept -open between multiple IPMI messages (a common -occurrence). - -Resolves: #82 - -Signed-off-by: Patrick Venture ---- - src/plugins/open/open.c | 83 ++++++++++++++++++++++++----------------- - 1 file changed, 48 insertions(+), 35 deletions(-) - -diff --git a/src/plugins/open/open.c b/src/plugins/open/open.c -index 4fdabeb..8761a6d 100644 ---- a/src/plugins/open/open.c -+++ b/src/plugins/open/open.c -@@ -336,48 +336,61 @@ ipmi_openipmi_send_cmd(struct ipmi_intf *intf, struct ipmi_rq *req) +diff -up ipmitool-1.8.18/src/plugins/open/open.c.checking-received ipmitool-1.8.18/src/plugins/open/open.c +--- ipmitool-1.8.18/src/plugins/open/open.c.checking-received 2023-07-25 17:14:22.112985375 +0200 ++++ ipmitool-1.8.18/src/plugins/open/open.c 2023-07-25 17:14:22.115985324 +0200 +@@ -336,48 +336,61 @@ ipmi_openipmi_send_cmd(struct ipmi_intf read_timeout.tv_sec = IPMI_OPENIPMI_READ_TIMEOUT; read_timeout.tv_usec = 0; do { - retval = select(intf->fd+1, &rset, NULL, NULL, &read_timeout); - } while (retval < 0 && errno == EINTR); - if (retval < 0) { -- lperror(LOG_ERR, "I/O Error"); -- if (data != NULL) { -- free(data); -- data = NULL; -- } -- return NULL; +- lperror(LOG_ERR, "I/O Error"); +- if (data != NULL) { +- free(data); ++ do { ++ retval = select(intf->fd + 1, &rset, NULL, NULL, &read_timeout); ++ } while (retval < 0 && errno == EINTR); ++ if (retval < 0) { ++ lperror(LOG_ERR, "I/O Error"); ++ if (data != NULL) { ++ free(data); + data = NULL; +- } +- return NULL; - } else if (retval == 0) { - lprintf(LOG_ERR, "No data available"); - if (data != NULL) { @@ -47,29 +30,20 @@ index 4fdabeb..8761a6d 100644 - return NULL; - } - if (FD_ISSET(intf->fd, &rset) == 0) { -- lprintf(LOG_ERR, "No data available"); -- if (data != NULL) { -- free(data); -- data = NULL; -+ do { -+ retval = select(intf->fd + 1, &rset, NULL, NULL, &read_timeout); -+ } while (retval < 0 && errno == EINTR); -+ if (retval < 0) { -+ lperror(LOG_ERR, "I/O Error"); -+ if (data != NULL) { -+ free(data); -+ data = NULL; +- lprintf(LOG_ERR, "No data available"); +- if (data != NULL) { +- free(data); + } + return NULL; + } else if (retval == 0) { + lprintf(LOG_ERR, "No data available"); + if (data != NULL) { + free(data); -+ data = NULL; + data = NULL; + } + return NULL; - } -- return NULL; + } +- return NULL; - } - - recv.addr = (unsigned char *) &addr; @@ -79,16 +53,16 @@ index 4fdabeb..8761a6d 100644 - - /* get data */ - if (ioctl(intf->fd, IPMICTL_RECEIVE_MSG_TRUNC, &recv) < 0) { -- lperror(LOG_ERR, "Error receiving message"); -- if (errno != EMSGSIZE) { +- lperror(LOG_ERR, "Error receiving message"); +- if (errno != EMSGSIZE) { + if (FD_ISSET(intf->fd, &rset) == 0) { + lprintf(LOG_ERR, "No data available"); - if (data != NULL) { - free(data); - data = NULL; - } - return NULL; - } + if (data != NULL) { + free(data); + data = NULL; + } + return NULL; + } - } + + recv.addr = (unsigned char *)&addr; @@ -121,7 +95,4 @@ index 4fdabeb..8761a6d 100644 + } while (_req.msgid != recv.msgid); if (verbose > 4) { - fprintf(stderr, "Got message:"); --- -2.40.1 - + fprintf(stderr, "Got message:");