From d2f139aa9fd6dc4f9476d0a53f482f34c2a380ef Mon Sep 17 00:00:00 2001 From: Nathan Straz Date: Fri, 27 Mar 2009 13:11:37 -0400 Subject: [qarsh] Handle a very broken qarshd If qarshd is broken enough that it can't load libxml2.so, it won't return an XML packet which we can parse. set_remote_user() really needs to error out of we didn't get a packet back. --- qarsh.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'qarsh.c') diff --git a/qarsh.c b/qarsh.c index 9bfd295..a8bb7ab 100644 --- a/qarsh.c +++ b/qarsh.c @@ -160,7 +160,11 @@ set_remote_user(char *user, char *group) send_packet(qarsh_fd, qp); qpfree(qp); qp = recv_packet(qarsh_fd); - if (qp && qp->qp_type == QP_RETURNCODE + if (!qp) { + fprintf(stderr, "Failed to receive response to set user\n"); + close(qarsh_fd); + exit(125); + } else if (qp->qp_type == QP_RETURNCODE && qp->qp_returncode.qp_rc == -1) { fprintf(stderr, "Remote side failed, %s\n", -- cgit