実行可能ファイルのsetcapの後、curl_easy_performでメモリ不足エラーが発生します。

実行可能ファイルのsetcapの後、curl_easy_performでメモリ不足エラーが発生します。

Debian Stretchで実行するために実行可能ファイルをクロスコンパイルしましたが、実行するには特定のバージョンのcURL(7.56以降)が必要で、実行中に特定の機能が必要です。したがって、実行ファイルを実行します。

$ sudo setcap cap_net_raw,cap_net_admin+eip my_executable

このsetcapを実行した後に実行可能ファイルを実行すると、次のエラーが発生します。

curl_easy_perform() failed: Out of memory

ノートこのエラーは、以前のバージョンのCURLのバグが原因で発生すると予想されます。そのため、上記のcURLバージョンにアップグレードする必要があります7.56。 Raspberry Piで実行している場合、デフォルトバージョンはです7.52。したがって、システムのcURLバージョンを手動で最新のリリースに更新しましたが、これが以前のバージョンのcURLを指していると思います。

$ curl --version
curl 7.64.1 (armv7l-unknown-linux-gnueabihf) libcurl/7.64.1 OpenSSL/1.1.0j
Release-Date: 2019-03-27
Protocols: dict file ftp ftps gopher http https imap imaps pop3 pop3s rtsp smb smbs smtp smtps telnet tftp
Features: AsynchDNS HTTPS-proxy IPv6 Largefile NTLM NTLM_WB SSL TLS-SRP UnixSockets

ここで何が起こっているのでしょうか?setcap実行可能ファイルがusr/bin標準およびライブラリの外部のどこかで動的にリンクされるようにしますかusr/local/bin

関連情報