Ошибка проверки памяти Valgrind внутри функции strchr - PullRequest
0 голосов
/ 12 мая 2019

Valgrind сообщает о следующей ошибке memcheck внутри функции strchr

==5801== Conditional jump or move depends on uninitialised value(s)
==5801==    at 0x34BB32865A: __strchr_sse42 (in /lib64/libc-2.12.so)

Я связал gdb с valgrind для возможного обхода кода strchr, но я не смог этого сделать.Все мои локальные переменные инициализированы, и программа работает просто отлично.Я не понимаю, откуда происходит ошибка valgrind

bool 
Graph::CheckValues( cfgs_val_t & cfgs, const char * mval ) 
{ 

    int matched = 1, av = -1, ev = -1; char * mv, * p1, * p2, * p3, * fn, *                args; 
    cfgs_val_t::iterator iter; bool cfg_anyval = false;

    mv = strdup( mval );  
    p1 = mv;
    p2 = p1;
    for( ; ; )
    {
       if( *p2 == '=' )
       {
           *p2 = '\0';
            p3 = strchr( p1, '(' );  
            if( p3 != nullptr )
            {
                return true;
            }
     }
}

Мой код работает нормально, кроме ошибки valgrind

...