Fixed a check() failure that was caused by incorrect handling of partially

processed buffers. I believe, this could only be triggered by clients that
enabled HTTP pipelining. That might explain why we haven't seen bug reports
any earlier.


git-svn-id: https://shellinabox.googlecode.com/svn/trunk@216 0da03de8-d603-11dd-86c2-0f8696b7b6f9
This commit is contained in:
zodiac@gmail.com 2010-08-27 22:22:15 +00:00
parent 7289691555
commit e8c241583d
8 changed files with 190 additions and 205 deletions

4
aclocal.m4 vendored
View file

@ -13,8 +13,8 @@
m4_ifndef([AC_AUTOCONF_VERSION],
[m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.67],,
[m4_warning([this file was generated for autoconf 2.67.
m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.65],,
[m4_warning([this file was generated for autoconf 2.65.
You have another version of autoconf. It may work, but is not guaranteed to.
If you have problems, you may need to regenerate the build system entirely.
To do so, use the procedure documented by the package, typically `autoreconf'.])])

View file

@ -153,7 +153,7 @@
#define STDC_HEADERS 1
/* Most recent revision number in the version control system */
#define VCS_REVISION "215"
#define VCS_REVISION "216"
/* Version number of package */
#define VERSION "2.10"

371
configure vendored

File diff suppressed because it is too large Load diff

View file

@ -2,7 +2,7 @@ AC_PREREQ(2.57)
dnl This is the one location where the authoritative version number is stored
AC_INIT(shellinabox, 2.10, markus@shellinabox.com)
VCS_REVISION=215
VCS_REVISION=216
AC_SUBST(VCS_REVISION)
AC_DEFINE_UNQUOTED(VCS_REVISION, "${VCS_REVISION}",
[Most recent revision number in the version control system])

View file

@ -1962,7 +1962,7 @@ VT100.prototype.toggleCursorBlinking = function() {
};
VT100.prototype.about = function() {
alert("VT100 Terminal Emulator " + "2.10 (revision 215)" +
alert("VT100 Terminal Emulator " + "2.10 (revision 216)" +
"\nCopyright 2008-2010 by Markus Gutschke\n" +
"For more information check http://shellinabox.com");
};

View file

@ -1539,7 +1539,7 @@ int httpHandleConnection(struct ServerConnection *connection, void *http_,
if (http->expecting) {
int len = bytes - offset;
if (http->expecting > 0 &&
bytes > http->expecting) {
len > http->expecting) {
len = http->expecting;
}
if (http->state == PAYLOAD) {
@ -1559,6 +1559,7 @@ int httpHandleConnection(struct ServerConnection *connection, void *http_,
check(0);
}
offset += consumed;
if (pushBack) {
check(offset + pushBack == bytes);
if (offset >= 0) {
@ -1577,7 +1578,6 @@ int httpHandleConnection(struct ServerConnection *connection, void *http_,
offset = -pushBack;
break;
} else {
offset += consumed;
eob |= offset >= bytes;
}
} while (!eob && !http->closed);

View file

@ -358,7 +358,7 @@ ShellInABox.prototype.extendContextMenu = function(entries, actions) {
};
ShellInABox.prototype.about = function() {
alert("Shell In A Box version " + "2.10 (revision 215)" +
alert("Shell In A Box version " + "2.10 (revision 216)" +
"\nCopyright 2008-2010 by Markus Gutschke\n" +
"For more information check http://shellinabox.com" +
(typeof serverSupportsSSL != 'undefined' && serverSupportsSSL ?

View file

@ -1962,7 +1962,7 @@ VT100.prototype.toggleCursorBlinking = function() {
};
VT100.prototype.about = function() {
alert("VT100 Terminal Emulator " + "2.10 (revision 215)" +
alert("VT100 Terminal Emulator " + "2.10 (revision 216)" +
"\nCopyright 2008-2010 by Markus Gutschke\n" +
"For more information check http://shellinabox.com");
};