func: int CVE_2012_1184_PATCHED_ast_parse_digest(const char *digest, struct ast_http_digest *d, int request, int pedantic) char * c ; struct ast_str * str = ast_str_create ( 16 ) ; * i , keys [ ] "username=" , & d -> username "realm=" , & d -> realm "nonce=" , & d -> nonce "uri=" , & d -> uri "domain=" , & d -> domain "response=" , & d -> response "cnonce=" , & d -> cnonce "opaque=" , & d -> opaque , if ( ast_strlen_zero ( digest ) || ! d || ! str )  c = ast_skip_blanks ( ast_str_buffer ( str ) ); if ( strncasecmp ( c , "Digest " , strlen ( "Digest " ) ) )  c += strlen ( "Digest " ); while ( c && * c && * ( c = ast_skip_blanks ( c ) ) )  for (i = keys; i->key != NULL; i++) char * src , * separator ; if ( strncasecmp ( c , i -> key , strlen ( i -> key ) ) != 0 )  c += strlen ( i -> key ); if ( * c == '"' )  src = ++ c; src = c; if ( i -> field )  if ( ! strcasecmp ( i -> key , "algorithm=" ) )  if ( strcasecmp ( src , "MD5" ) )  if ( ! strcasecmp ( i -> key , "qop=" ) && ! strcasecmp ( src , "auth" ) )  if ( ! strcasecmp ( i -> key , "nc=" ) )  if ( sscanf ( src , "%30lx" , & u ) != 1 )  