summaryrefslogtreecommitdiffstats
path: root/qarsh.c
diff options
context:
space:
mode:
authorNathan Straz <nstraz@redhat.com>2009-03-27 13:11:37 -0400
committerNathan Straz <nstraz@redhat.com>2009-03-27 13:11:37 -0400
commitd2f139aa9fd6dc4f9476d0a53f482f34c2a380ef (patch)
tree53efa02e8a37ff51de939456850efedf1858130f /qarsh.c
parent84c28731c129daedc11bb55e287e23c06ef3f59a (diff)
downloadqarsh-d2f139aa9fd6dc4f9476d0a53f482f34c2a380ef.tar.gz
qarsh-d2f139aa9fd6dc4f9476d0a53f482f34c2a380ef.tar.xz
qarsh-d2f139aa9fd6dc4f9476d0a53f482f34c2a380ef.zip
[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.
Diffstat (limited to 'qarsh.c')
-rw-r--r--qarsh.c6
1 files changed, 5 insertions, 1 deletions
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",