<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"><html><head><meta name="qrichtext" content="1" /><style type="text/css">p, li { white-space: pre-wrap; }</style></head><body style=" font-family:'Lucida Console'; font-size:9pt; font-weight:400; font-style:normal;">On Mittwoch, 30. September 2009, Alex Balashov wrote:<br>
> > Do you use allow_trusted in caching mode, or does it query the db for<br>
> > every invocation? If the latter, i'd take a closer look to the failure<br>
> > handling logic in the function, perhaps it lets some variables staying<br>
> > in a unclean state after a failure.<br>
><br>
> Non-caching mode, and by design. The list changes with some frequency.<br>
><br>
> I understood from the backtrace that the crash was *in* the function<br>
> mysql_real_escape_string(), but I did not necessarily assume that means<br>
> the problem is with the implementation of that function in the sense of<br>
> a "bug."<br>
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;"><br></p>Hi Alex,<br>
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;"><br></p>yes, perhaps i expressed myself a bit unclear.<br>
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;"><br></p>> Perhaps the function should do a better job of validating all input it<br>
> receives, yes, but the fundamental problem may be with the way that it's<br>
> being invoked by the caller under that particular set of circumstances.<br>
> That's assuming the problem has to do with invalid parameters to the<br>
> function at all, and not some indirect cause.<br>
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;"><br></p>This is also my opinion.<br>
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;"><br></p>> I have tried very hard to recreate this problem with a few other modules<br>
> that utilise the database and also call standard libmysqlclient<br>
> functions (including mysql_real_escape_string(), I would imagine) such<br>
> as avpops, and I cannot get it to crash. My only conclusion is that<br>
> there has got to be something that the implementation of allow_trusted()<br>
> is doing that is a little bit ... special.<br>
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;"><br></p>I also suspect this, as i don't get this behaviour so far in similar test/ production scenarios.<br>
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;"><br></p>Henning</p></body></html>