[pcre-dev] bug found in last version (7.9)

Kezdőlap
Üzenet törlése
Szerző: John Brown
Dátum:  
Címzett: pcre-dev
Tárgy: [pcre-dev] bug found in last version (7.9)
I placed regex and subject in the regex.txt and subject.txt files (see
this email attach)
Code I used (it will fail with stack overflow exception because match()
function uses endless recursion):

    int err;
    const char * errchar;
    pcre * pRegex = pcre_compile("(([^><]|<br>|<p>)+?)<.+?>(?!.*<div
class=\"heading\".*My Info)(?=.*?<td valign=\"bottom\" colspan=\"2\">)",
        PCRE_DOTALL|PCRE_MULTILINE,&errchar,&err,0);


    int vec[1024];
    if (pcre_exec(pRegex,0,SUBJECT,strlen(SUBJECT),0,0,vec,sizeof(vec)))
    {
        free(pRegex);
    }


Thanks.
Version 7.9 (last for this time)
from pcre.org

(([^><]|<br>|<p>)+?)<.+?>(?!.*<div class=\"heading\".*My Info)(?=.*?<td valign=\"bottom\" colspan=\"2\">)
    showSBPopup('/myaccount/idsi_forwarder.html');
        }




           //*********************
           // This code will pre-fetch and cache info needed for the money transfer page
           // This is needed to improve performance of the money transfer page
           //*********************
           function preloadMoneyTransferCache() {
                var preloadMoneyTransfer =
                 {
                    success:preloadMoneyTransferSuccess,
                    failure:preloadMoneyTransferFailure
                 };
                 var request = YAHOO.util.Connect.asyncRequest('GET', 'nothing/money_transfer_initialize_selector.vm', preloadMoneyTransfer);
            }
            var preloadMoneyTransferSuccess = function(o){
                //intentionally empty
            }
            var preloadMoneyTransferFailure = function(o){
                //intentionally empty
            }


            //do when window loads
            womAdd('preloadMoneyTransferCache();');



        womAdd('enableTooltips("tooltip");');



BUG.

    int err;
    const char * errchar;
    pcre * pRegex = pcre_compile("(([^><]|<br>|<p>)+?)<.+?>(?!.*<div class=\"heading\".*My Info)(?=.*?<td valign=\"bottom\" colspan=\"2\">)",
        PCRE_DOTALL|PCRE_MULTILINE,&errchar,&err,0);


    int vec[1024];
    if (pcre_exec(pRegex,0,SUBJECT,strlen(SUBJECT),0,0,vec,sizeof(vec)))
    {
        free(pRegex);
    }


23:03 14.05.2009