View | Details | Raw Unified | Return to bug 1528 | Differences between
and this patch

Collapse All | Expand All

(-)openssh-5.1p1/channels.c (+14 lines)
Lines 1603-1610 Link Here
1603
			return -1;
1603
			return -1;
1604
		}
1604
		}
1605
		if (compat20 && c->isatty && dlen >= 1 && buf[0] != '\r') {
1605
		if (compat20 && c->isatty && dlen >= 1 && buf[0] != '\r') {
1606
1607
#ifndef __sun
1608
			/*
1609
			 * On Solaris 9 and 10, on both sparc and i86pc,
1610
			 * the tcgetattr call hangs forever after a large
1611
			 * write to the pty.  So pasting 50 lines or so of
1612
			 * text will hang sshd.  We'll avoid this by just
1613
			 * assuming echo is set and always send the random
1614
			 * data packet.
1615
			 */
1616
1606
			if (tcgetattr(c->wfd, &tio) == 0 &&
1617
			if (tcgetattr(c->wfd, &tio) == 0 &&
1607
			    !(tio.c_lflag & ECHO) && (tio.c_lflag & ICANON)) {
1618
			    !(tio.c_lflag & ECHO) && (tio.c_lflag & ICANON)) {
1619
#endif
1608
				/*
1620
				/*
1609
				 * Simulate echo to reduce the impact of
1621
				 * Simulate echo to reduce the impact of
1610
				 * traffic analysis. We need to match the
1622
				 * traffic analysis. We need to match the
Lines 1613-1619 Link Here
1613
				 */
1625
				 */
1614
				packet_send_ignore(4 + len);
1626
				packet_send_ignore(4 + len);
1615
				packet_send();
1627
				packet_send();
1628
#ifndef __sun
1616
			}
1629
			}
1630
#endif
1617
		}
1631
		}
1618
		buffer_consume(&c->output, len);
1632
		buffer_consume(&c->output, len);
1619
		if (compat20 && len > 0) {
1633
		if (compat20 && len > 0) {

Return to bug 1528