summaryrefslogtreecommitdiffstats
path: root/ipa-server/ipa-kpasswd
diff options
context:
space:
mode:
authorSimo Sorce <ssorce@redhat.com>2007-09-12 11:51:16 -0400
committerSimo Sorce <ssorce@redhat.com>2007-09-12 11:51:16 -0400
commit5898ae527aab2358780abf56fbd33542336af54e (patch)
tree831a109935029cbc57c372cddf5e032af2a9f897 /ipa-server/ipa-kpasswd
parent182fbe30945a8de005f00b460968dca7973342fb (diff)
downloadfreeipa-5898ae527aab2358780abf56fbd33542336af54e.tar.gz
freeipa-5898ae527aab2358780abf56fbd33542336af54e.tar.xz
freeipa-5898ae527aab2358780abf56fbd33542336af54e.zip
In the TCP case there is an extra (redundant) lenght
field before the packet data, address the problem.
Diffstat (limited to 'ipa-server/ipa-kpasswd')
-rw-r--r--ipa-server/ipa-kpasswd/ipa_kpasswd.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/ipa-server/ipa-kpasswd/ipa_kpasswd.c b/ipa-server/ipa-kpasswd/ipa_kpasswd.c
index c59db44b..325f6aa0 100644
--- a/ipa-server/ipa-kpasswd/ipa_kpasswd.c
+++ b/ipa-server/ipa-kpasswd/ipa_kpasswd.c
@@ -842,7 +842,15 @@ pid_t handle_conn(int fd, int type)
#endif
/* children */
- handle_krb_packets(request, reqlen, &from, &reply, &replen);
+
+ /* TCP packets prepend the lenght as a 32bit network order field,
+ * this information seem to be just redundant, so let's simply
+ * skip it */
+ if (type == KPASSWD_TCP) {
+ handle_krb_packets(request+4, reqlen-4, &from, &reply, &replen);
+ } else {
+ handle_krb_packets(request, reqlen, &from, &reply, &replen);
+ }
if (replen) { /* we have something to reply */
if (type == KPASSWD_TCP) {