Commit f49276bf authored by Steve Holme's avatar Steve Holme
Browse files

ftpserver.pl: Fixed processing of IMAP authentication strings

parent d08ee3c8
Loading
Loading
Loading
Loading
+13 −6
Original line number Diff line number Diff line
@@ -3049,16 +3049,23 @@ while(1) {
        my $FTPARG;
        if($proto eq "imap") {
            # IMAP is different with its identifier first on the command line
            unless(($full =~ /^([^ ]+) ([^ ]+) (.*)/) ||
            if(($full =~ /^([^ ]+) ([^ ]+) (.*)/) ||
               ($full =~ /^([^ ]+) ([^ ]+)/)) {
                sendcontrol "$1 '$full': command not understood.\r\n";
                last;
            }

                $cmdid=$1; # set the global variable
                $FTPCMD=$2;
                $FTPARG=$3;
            }
            # IMAP long "commands" are base64 authentication data
            elsif($full =~ /^[A-Z0-9+\/]*={0,2}$/i) {
                # Command id has already been set
                $FTPCMD=$full;
                $FTPARG="";
            }
            else {
                sendcontrol "$1 '$full': command not understood.\r\n";
                last;
            }
        }
        elsif($full =~ /^([A-Z]{3,4})(\s(.*))?$/i) {
            $FTPCMD=$1;
            $FTPARG=$3;