Huge thanks to our Platinum Members Endace and LiveAction,
and our Silver Member Veeam, for supporting the Wireshark Foundation and project.

Wireshark-dev: Re: [Wireshark-dev] What mean "Error: Found prohibited APIs in ..." error during

From: Jirka Novak <j.novak@xxxxxxxxxxxx>
Date: Tue, 9 Feb 2021 12:47:17 +0100
Hi,

>     > Change calls to open() to call ws_open(), instead, so that, on
>     Windows, they can handle UTF-8 pathnames (by turning them into
>     UTF-16 pathnames and passing them to routines that take UTF-16
>     pathnames, rather than using various code page encodings for strings).
>     >
>     > Also use ws_close() instead of close().  (The ws_ calls, on
>     Windows, also call the Visual Studio C library routines that
>     implement UN*X-style APIs, with an underscore preceding the UN*X API
>     name.)
> 
>     Thank you for explanation and I understand the reasons, but I don't
>     think it is possible in this case. Classes extending QIODevice where
>     open/close are parent methods I must call/override.
>     It looks that it is false positive check. Is there any way how to add
>     exception to check in this case?
> 
> THere is already some code in checkAPIs.pl file to identify false positives:
> 
>                 # Match function calls, but ignore false positives from:
>                 # C++ method definition: int MyClass::open(...)
>                 # Method invocation: myClass->open(...);
>                 # Function declaration: int open(...);
>                 # Method invocation: QString().sprintf(...)
>                 while (${$fileContentsRef} =~ m/ \W (?<!::|->|\w\ )
> (?<!\.) $api \W* \( /gx)
>                 {
>                         $cnt += 1;
>                 }
>                 if ($cnt > 0) {
>                         push @{$foundAPIsRef}, $api;
>                         $groupHashRef->{function_counts}->{$api} += 1;
>                 }
> 
> This probably needs to be improved for your use case.

The solution was to fully clasify parent's methods. E.g. open() to
QIODevice::open(). This is already checked in checkAPIs.pl and it solved
the issue.

Thank you all for help.

						Best regards,

							Jirka Novak