diff -Nru /tmp/1qXdgxNuhc/kdelibs-3.5.5/debian/changelog /tmp/EgkfTvDygq/kdelibs-3.5.5/debian/changelog --- /tmp/1qXdgxNuhc/kdelibs-3.5.5/debian/changelog 2007-02-26 19:15:29.000000000 +0000 +++ /tmp/EgkfTvDygq/kdelibs-3.5.5/debian/changelog 2007-02-26 19:15:35.000000000 +0000 @@ -1,3 +1,13 @@ +kdelibs (4:3.5.5-0ubuntu3.2) edgy-proposed; urgency=low + + * Update for https://blueprints.launchpad.net/ubuntu/+spec/kubuntu-update-manager + - https://launchpad.net/ubuntu/+source/update-manager/+bug/84717 + * Add kubuntu_63_konsole_pty.diff, adds setPtyFd() function to kpty, allows konsole to + attach to an existing pty from another process + * Update shlib version for kdelibs4c2a + + -- Jonathan Riddell Mon, 12 Feb 2007 13:18:28 +0000 + kdelibs (4:3.5.5-0ubuntu3.1) edgy-security; urgency=low * SECURITY UPDATE: XSS attacks possible with comment in TITLE tag. diff -Nru /tmp/1qXdgxNuhc/kdelibs-3.5.5/debian/patches/kubuntu_63_konsole_pty.diff /tmp/EgkfTvDygq/kdelibs-3.5.5/debian/patches/kubuntu_63_konsole_pty.diff --- /tmp/1qXdgxNuhc/kdelibs-3.5.5/debian/patches/kubuntu_63_konsole_pty.diff 1970-01-01 00:00:00.000000000 +0000 +++ /tmp/EgkfTvDygq/kdelibs-3.5.5/debian/patches/kubuntu_63_konsole_pty.diff 2007-02-26 19:15:35.000000000 +0000 @@ -0,0 +1,153 @@ +unchanged: +diff -Nur kdelibs-3.5.5/interfaces/terminal/kde_terminal_interface.h kdelibs-3.5.5.new/interfaces/terminal/kde_terminal_interface.h +--- kdelibs-3.5.5/interfaces/terminal/kde_terminal_interface.h 2005-10-10 15:05:25.000000000 +0000 ++++ kdelibs-3.5.5.new/interfaces/terminal/kde_terminal_interface.h 2007-02-26 18:57:07.000000000 +0000 +@@ -163,6 +163,8 @@ + start another program instead or close it yourself. + */ + virtual void setAutoDestroy(bool enabled) = 0; ++ ++ virtual bool setPtyFd(int master_pty) = 0; + }; + + #endif +diff -Nur kdelibs-3.5.5/kdecore/kpty.cpp kdelibs-3.5.5.new/kdecore/kpty.cpp +--- kdelibs-3.5.5/kdecore/kpty.cpp 2007-02-26 18:57:01.000000000 +0000 ++++ kdelibs-3.5.5.new/kdecore/kpty.cpp 2007-02-26 19:06:02.000000000 +0000 +@@ -349,6 +349,109 @@ + return true; + } + ++bool KPty::setPty(int pty_master) ++{ ++ kdWarning(175) ++ << "setPty()" << endl; ++ // a pty is already open ++ if(d->masterFd >= 0) { ++ kdWarning(175) ++ << "d->masterFd >= 0" << endl; ++ return false; ++ } ++ d->masterFd = pty_master; ++ return _attachPty(pty_master); ++} ++ ++bool KPty::_attachPty(int pty_master) ++{ ++ QCString ptyName; ++ ++ kdWarning(175) ++ << "_attachPty() " << pty_master << endl; ++#if defined(HAVE_PTSNAME) && defined(HAVE_GRANTPT) ++ char *ptsn = ptsname(d->masterFd); ++ if (ptsn) { ++ grantpt(d->masterFd); ++ d->ttyName = ptsn; ++ } else { ++ ::close(d->masterFd); ++ d->masterFd = -1; ++ } ++#endif ++ ++ struct stat st; ++ if (stat(d->ttyName.data(), &st)) ++ return false; // this just cannot happen ... *cough* Yeah right, I just ++ // had it happen when pty #349 was allocated. I guess ++ // there was some sort of leak? I only had a few open. ++ if (((st.st_uid != getuid()) || ++ (st.st_mode & (S_IRGRP|S_IXGRP|S_IROTH|S_IWOTH|S_IXOTH))) && ++ !chownpty(true)) ++ { ++ kdWarning(175) ++ << "chownpty failed for device " << ptyName << "::" << d->ttyName ++ << "\nThis means the communication can be eavesdropped." << endl; ++ } ++ ++#ifdef BSD ++ revoke(d->ttyName.data()); ++#endif ++ ++#ifdef HAVE_UNLOCKPT ++ unlockpt(d->masterFd); ++#endif ++ ++ d->slaveFd = ::open(d->ttyName.data(), O_RDWR | O_NOCTTY); ++ if (d->slaveFd < 0) ++ { ++ kdWarning(175) << "Can't open slave pseudo teletype" << endl; ++ ::close(d->masterFd); ++ d->masterFd = -1; ++ return false; ++ } ++ ++#if (defined(__svr4__) || defined(__sgi__)) ++ // Solaris ++ ioctl(d->slaveFd, I_PUSH, "ptem"); ++ ioctl(d->slaveFd, I_PUSH, "ldterm"); ++#endif ++ ++ // set xon/xoff & control keystrokes ++ // without the '::' some version of HP-UX thinks, this declares ++ // the struct in this class, in this method, and fails to find ++ // the correct tc[gs]etattr ++ struct ::termios ttmode; ++ ++ _tcgetattr(d->slaveFd, &ttmode); ++ ++ if (!d->xonXoff) ++ ttmode.c_iflag &= ~(IXOFF | IXON); ++ else ++ ttmode.c_iflag |= (IXOFF | IXON); ++ ++#ifdef IUTF8 ++ if (!d->utf8) ++ ttmode.c_iflag &= ~IUTF8; ++ else ++ ttmode.c_iflag |= IUTF8; ++#endif ++ ++ ttmode.c_cc[VINTR] = CTRL('C' - '@'); ++ ttmode.c_cc[VQUIT] = CTRL('\\' - '@'); ++ ttmode.c_cc[VERASE] = 0177; ++ ++ _tcsetattr(d->slaveFd, &ttmode); ++ ++ // set screen size ++ ioctl(d->slaveFd, TIOCSWINSZ, (char *)&d->winSize); ++ ++ fcntl(d->masterFd, F_SETFD, FD_CLOEXEC); ++ fcntl(d->slaveFd, F_SETFD, FD_CLOEXEC); ++ ++ return true; ++} ++ + void KPty::close() + { + if (d->masterFd < 0) +diff -Nur kdelibs-3.5.5/kdecore/kpty.h kdelibs-3.5.5.new/kdecore/kpty.h +--- kdelibs-3.5.5/kdecore/kpty.h 2005-10-10 15:06:02.000000000 +0000 ++++ kdelibs-3.5.5.new/kdecore/kpty.h 2007-02-26 18:57:07.000000000 +0000 +@@ -61,6 +61,13 @@ + */ + bool open(); + ++ /** ++ * Attach a existing pty master ++ * ++ * @return true if the pty was successfully added ++ */ ++ bool setPty(int pty_master); ++ + /** + * Close the pty master/slave pair. + */ +@@ -138,6 +145,9 @@ + */ + int slaveFd() const; + ++ protected: ++ bool _attachPty(int pty_master); ++ + private: + bool chownpty(bool grant); + diff -Nru /tmp/1qXdgxNuhc/kdelibs-3.5.5/debian/rules /tmp/EgkfTvDygq/kdelibs-3.5.5/debian/rules --- /tmp/1qXdgxNuhc/kdelibs-3.5.5/debian/rules 2007-02-26 19:15:29.000000000 +0000 +++ /tmp/EgkfTvDygq/kdelibs-3.5.5/debian/rules 2007-02-26 19:15:35.000000000 +0000 @@ -24,7 +24,7 @@ PACKAGES_WITH_LIBS := kdelibs4c2a -DEB_DH_MAKESHLIBS_ARGS_kdelibs4c2a := -V'kdelibs4c2a (>= 4:3.5.3-1)' +DEB_DH_MAKESHLIBS_ARGS_kdelibs4c2a := -V'kdelibs4c2a (>= 4:3.5.5-0ubuntu3.2)' #shlibs_ver = 4:3.5.0-1 #$(foreach p,$(PACKAGES_WITH_LIBS),$(eval DEB_DH_MAKESHLIBS_ARGS_$(p) := -V'$(p) (>= $(shlibs_ver))'))