2010/12/10 Mike Blumenkrantz <m...@zentific.com>: > On Fri, 10 Dec 2010 10:25:40 -0200 > Iván Briano (Sachiel) <sachi...@gmail.com> wrote: > >> 2010/12/10 Mike Blumenkrantz <m...@zentific.com>: >> > On Fri, 10 Dec 2010 10:00:05 -0200 >> > Iván Briano (Sachiel) <sachi...@gmail.com> wrote: >> > >> >> 2010/12/10 Mike Blumenkrantz <m...@zentific.com>: >> >> > On Fri, 10 Dec 2010 09:42:53 -0200 >> >> > Iván Briano (Sachiel) <sachi...@gmail.com> wrote: >> >> > >> >> >> 2010/12/9 Enlightenment SVN <no-re...@enlightenment.org>: >> >> >> > Log: >> >> >> > this error fix is dedicated to Tommy[D] for continuing to prove that >> >> >> > the impossible can still be possible on his system >> >> >> > >> >> >> > >> >> >> > Author: discomfitor >> >> >> > Date: 2010-12-09 13:02:53 -0800 (Thu, 09 Dec 2010) >> >> >> > New Revision: 55432 >> >> >> > Trac: http://trac.enlightenment.org/e/changeset/55432 >> >> >> > >> >> >> > Modified: >> >> >> > trunk/ecore/src/lib/ecore_con/ecore_con.c >> >> >> > >> >> >> > Modified: trunk/ecore/src/lib/ecore_con/ecore_con.c >> >> >> > =================================================================== >> >> >> > --- trunk/ecore/src/lib/ecore_con/ecore_con.c 2010-12-09 18:39:08 >> >> >> > UTC (rev 55431) +++ trunk/ecore/src/lib/ecore_con/ecore_con.c >> >> >> > 2010-12-09 21:02:53 UTC (rev 55432) @@ -2231,15 +2231,17 @@ >> >> >> > if (!svr->write_buf) >> >> >> > return; >> >> >> > >> >> >> > + num = svr->write_buf_size - svr->write_buf_offset; >> >> >> > + >> >> >> > /* check whether we need to write anything at all. >> >> >> > * we must not write zero bytes with SSL_write() since it >> >> >> > * causes undefined behaviour >> >> >> > */ >> >> >> > - if (svr->write_buf_size == svr->write_buf_offset) >> >> >> > - return; >> >> >> > + /* we thank Tommy[D] for needing to check negative buffer sizes >> >> >> > + * here because his system is amazing. >> >> >> > + */ >> >> >> > + if (num <= 0) return; >> >> >> > >> >> >> >> >> >> How can you get to that point without something else screwing up >> >> >> before? >> >> >> It looks like you wrote more than you had in your buffer. >> >> >> >> >> >> > - num = svr->write_buf_size - svr->write_buf_offset; >> >> >> > - >> >> >> > if (svr->handshaking) >> >> >> > { >> >> >> > DBG("Continuing ssl handshake"); >> >> >> > >> >> >> > >> >> >> > ------------------------------------------------------------------------------ >> >> >> > _______________________________________________ >> >> >> > enlightenment-svn mailing list >> >> >> > enlightenment-...@lists.sourceforge.net >> >> >> > https://lists.sourceforge.net/lists/listinfo/enlightenment-svn >> >> >> > >> >> >> >> >> >> ------------------------------------------------------------------------------ >> >> >> _______________________________________________ >> >> >> enlightenment-devel mailing list >> >> >> enlightenment-devel@lists.sourceforge.net >> >> >> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel >> >> > I honestly have no idea, but apparently Tommy[D] is able to do it using >> >> > the mail (I think?) module. The only way that it's possible is if >> >> > ecore_con screws up internally, and as far as I can tell that doesn't >> >> > seem possible either. >> >> > >> >> >> >> But it's happening. Maybe some wrong pointer arithmetic that >> >> doesn't properly take into account 64bits sizes? >> > This member is just a simple int though, pointer math shouldn't matter. >> >> >> >> But how you account for written stuff could. I didn't check that code, >> but it does look like something else is wrong if you a negative count. >> >> >> > -- >> >> > Mike Blumenkrantz >> >> > Zentific: We run the three-legged race individually. >> >> > >> > >> > >> > -- >> > Mike Blumenkrantz >> > Zentific: We run the three-legged race individually. >> > > All it does is subtract the current offset from the total length. The problem > is when the difference is negative. No clue how that can happen though. >
The offset being larger than the full length is one way. How can that happen? I guess that successfully writing more than needed (some math error somewhere else) or a wrong error checking done that ends up increasing the current offset more than it should. Or something is taking a dump over someone else's memory and nothing makes sense anymore. > -- > Mike Blumenkrantz > Zentific: We run the three-legged race individually. > ------------------------------------------------------------------------------ _______________________________________________ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel