[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#438796: ksirc: Does not allow colons in server passwords



Package: ksirc
Version: 4:3.5.5-5
Severity: normal
Tags: patch

If there is a colon in a server password, ksirc will not parse that
correctly and will fail to connect. This is a problem for example when
using the "bip" IRC proxy server as that requires passwords in the
format <user>:<passwd>:<network>.

The attached fairly trivial patch fixes this. 
 
I can see no real reason why colons in passwords should not be
allowed. AFAICT, when the connect string is parsed, just interpreting
the password as "anything after the second colon" should be OK.

I have also filed the bug upstream, but it'd be nice if the patch could
already be included in Debian.

Cheers,
FJP

-- System Information:
Debian Release: lenny/sid
  APT prefers testing
  APT policy: (500, 'testing')
Architecture: amd64 (x86_64)

Kernel: Linux 2.6.23-rc3 (SMP w/2 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash

Versions of packages ksirc depends on:
ii  kdelibs4c2a             4:3.5.7.dfsg.1-4 core libraries and binaries for al
ii  libc6                   2.6.1-1          GNU C Library: Shared libraries
ii  libgcc1                 1:4.2.1-4        GCC support library
ii  libstdc++6              4.2.1-4          The GNU Standard C++ Library v3
ii  perl                    5.8.8-7          Larry Wall's Practical Extraction 

Versions of packages ksirc recommends:
ii  libio-socket-ssl-perl         1.02-1     Perl module implementing object or

-- no debconf information
--- kdenetwork-3.5.5/ksirc/dsirc.orig	2007-08-19 20:26:45.000000000 +0200
+++ kdenetwork-3.5.5/ksirc/dsirc	2007-08-19 20:26:55.000000000 +0200
@@ -114,8 +114,8 @@
 $nick=$opt_n || $ARGV[0] || $ENV{"SIRCNICK"} || $ENV{"IRCNICK"} || $username;
 $set{"FINGER"}=$ENV{"IRCFINGER"} || "keep your fingers to yourself";
 $set{"USERINFO"}=$ENV{"USERINFO"} || "yep, I'm a user";
-if ($server =~ /^\[([^\]]+)\]:([0-9]*):?([^:]*)$/
-    or $server =~ /^([^:]+):([0-9]*):?([^:]*)$/)
+if ($server =~ /^\[([^\]]+)\]:([0-9]*):?(.*)$/
+    or $server =~ /^([^:]+):([0-9]*):?(.*)$/)
 {
 	($server, $port, $pass)=($1, $2, $3);
 }

Reply to: