]> git.tuebingen.mpg.de Git - paraslash.git/blobdiff - command.c
Reject non-sideband connections.
[paraslash.git] / command.c
index 53465e3089d862647e7476228033b3021314d4b7..9b279f7d5eb142f61a76fc0ae3d780da93400c5e 100644 (file)
--- a/command.c
+++ b/command.c
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 1997-2012 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 1997-2013 Andre Noll <maan@systemlinux.org>
  *
  * Licensed under the GPL v2. For licencing details see COPYING.
  */
@@ -259,6 +259,14 @@ __printf_3_4 int send_sb_va(struct stream_cipher_context *scc, int band,
        return send_sb(scc, msg, ret, band, false);
 }
 
+/**
+ * Send an error message to a client.
+ *
+ * \param cc Client info.
+ * \param err The (positive) error code.
+ *
+ * \return The return value of the underlying call to send_sb_va().
+ */
 int send_strerror(struct command_context *cc, int err)
 {
        return cc->use_sideband?
@@ -896,6 +904,11 @@ static int parse_auth_request(char *buf, int len, struct user **u,
                        }
                }
        }
+       if (*use_sideband == false) { /* sideband is mandatory */
+               PARA_ERROR_LOG("client did not request sideband\n");
+               ret = -E_BAD_FEATURE;
+               goto out;
+       }
        PARA_DEBUG_LOG("received auth request for user %s (sideband = %s)\n",
                username, *use_sideband? "true" : "false");
        *u = lookup_user(username);