Skip to content

Commit 9f4b5d0

Browse files
authored
Fix Coverity warnings (open-eid#1354)
* Update Qt 6.9.2 and OpenSSL 3.5.2 IB-8585 Signed-off-by: Raul Metsma <raul@metsma.ee> * Fix Coverity warnings IB-8531 Signed-off-by: Raul Metsma <raul@metsma.ee> --------- Signed-off-by: Raul Metsma <raul@metsma.ee>
1 parent 509f2ab commit 9f4b5d0

20 files changed

Lines changed: 62 additions & 48 deletions

.github/workflows/build.yml

Lines changed: 38 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ jobs:
1212
runs-on: macos-latest
1313
env:
1414
MACOSX_DEPLOYMENT_TARGET: 13.0
15+
LIBS_PATH: ${{ github.workspace }}/cache
1516
steps:
1617
- name: Checkout
1718
uses: actions/checkout@v4
@@ -26,26 +27,37 @@ jobs:
2627
path: libdigidocpp-pkg
2728
repo: open-eid/libdigidocpp
2829
- name: Install dependencies
29-
env:
30-
HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK: YES
3130
run: |
3231
brew install flatbuffers
33-
HASH=($(shasum prepare_osx_build_environment.sh))
32+
brew upgrade cmake || true
3433
curl -O -L -s https://installer.id.ee/media/github/opensc_0.26.1.pkg
35-
curl -O -L -s https://installer.id.ee/media/github/${HASH}.zip
3634
sudo installer -verboseR -pkg libdigidocpp-pkg/build/macos/libdigidocpp*.pkg -target /
3735
sudo installer -verboseR -pkg opensc_*.pkg -target /
38-
sudo unzip -qq -d /Library/Developer ${HASH}.zip
3936
rm -rf libdigidocpp-pkg
37+
- name: Cache libraries
38+
uses: actions/cache@v4
39+
with:
40+
path: ${{ env.LIBS_PATH }}
41+
key: vcpkg-macOS-${{ hashFiles('prepare_osx_build_environment.sh') }}
42+
- name: Build libraries
43+
run: |
44+
mkdir -p ${LIBS_PATH}/Qt-6.9.2-OpenSSL
45+
./prepare_osx_build_environment.sh -p ${LIBS_PATH}
46+
- name: Install Qt
47+
uses: jurplel/install-qt-action@v4
48+
with:
49+
version: 6.9.2
50+
arch: clang_64
4051
- name: Build
4152
run: |
42-
QT_DIR=$(ls -d /Library/Developer/Qt-*-OpenSSL | tail -n 1)
43-
cmake "-GNinja" \
44-
-DCMAKE_PREFIX_PATH=${QT_DIR} \
45-
-DOPENSSL_ROOT_DIR=/Library/Developer/OpenSSL \
46-
-DLDAP_ROOT=/Library/Developer/OpenLDAP \
47-
-DCMAKE_OSX_ARCHITECTURES="x86_64;arm64" -B build -S .
48-
cmake --build build --target zipdebug macdeployqt zip
53+
cmake "-GNinja" -B build -S . -DCMAKE_BUILD_TYPE=RelWithDebInfo \
54+
-DOPENSSL_ROOT_DIR=${LIBS_PATH}/OpenSSL \
55+
-DLDAP_ROOT=${LIBS_PATH}/OpenLDAP \
56+
-DCMAKE_OSX_ARCHITECTURES="x86_64;arm64"
57+
cmake --build build
58+
cmake --build build --target zipdebug
59+
cmake --build build --target macdeployqt
60+
cmake --build build --target zip
4961
- name: Archive artifacts
5062
uses: actions/upload-artifact@v4
5163
with:
@@ -150,25 +162,32 @@ jobs:
150162
run: |
151163
Rename-Item "libdigidocpp*.msi" libdigidocpp.msi
152164
msiexec /qn /i libdigidocpp.msi
165+
- name: Cache vcpkg
166+
uses: actions/cache@v4
167+
with:
168+
path: ${{ github.workspace }}/vcpkg_cache
169+
key: vcpkg-${{ matrix.vcver }}-${{ hashFiles('vcpkg.json') }}
153170
- name: Prepare vcpkg
154-
uses: lukka/run-vcpkg@v7
171+
uses: lukka/run-vcpkg@v11
155172
with:
156-
vcpkgArguments: openssl zlib flatbuffers
157-
vcpkgGitCommitId: 031ad89ce6c575df35a8e58707ad2c898446c63e
158-
vcpkgTriplet: x64-windows
173+
vcpkgJsonGlob: ./vcpkg.json
174+
runVcpkgInstall: true
175+
env:
176+
VCPKG_BINARY_SOURCES: clear;files,${{ github.workspace }}/vcpkg_cache,readwrite
177+
VCPKG_INSTALLED_DIR: ${{ github.workspace }}/build/vcpkg_installed
159178
- name: Install Qt
160179
uses: jurplel/install-qt-action@v4
161180
with:
162-
version: 6.9.1
181+
version: 6.9.2
163182
arch: win64_msvc2022_64
164183
- name: Setup dev env
165184
uses: ilammy/msvc-dev-cmd@v1
166185
with:
167186
arch: x64
168187
- name: Install WiX
169188
run: |
170-
dotnet tool install -g wix --version 6.0.1
171-
wix extension -g add WixToolset.UI.wixext/6.0.1
189+
dotnet tool install -g wix --version 6.0.2
190+
wix extension -g add WixToolset.UI.wixext/6.0.2
172191
- name: Build
173192
run: |
174193
cmake "-GNinja" -B build -S . -DCMAKE_BUILD_TYPE=RelWithDebInfo `

CMakeLists.txt

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -30,10 +30,6 @@ set(CMAKE_CXX_STANDARD 20)
3030
set(CMAKE_CXX_STANDARD_REQUIRED YES)
3131
set(CMAKE_INTERPROCEDURAL_OPTIMIZATION YES)
3232
set(CMAKE_INTERPROCEDURAL_OPTIMIZATION_DEBUG NO)
33-
if(CMAKE_CXX_COMPILER_ID MATCHES "AppleClang")
34-
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,-object_path_lto,lto.o")
35-
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,-object_path_lto,lto.o")
36-
endif()
3733
set(CPACK_PACKAGE_VERSION ${VERSION})
3834
set(CPACK_GENERATOR RPM)
3935
set(CPACK_PACKAGE_CONTACT "RIA <info@ria.ee>")

client/CMakeLists.txt

Lines changed: 5 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ add_executable(${PROJECT_NAME} WIN32 MACOSX_BUNDLE
3434
${WIDGETS}
3535
images/images.qrc
3636
fonts/fonts.qrc
37+
mac/Info.plist.cmake
3738
common_enums.h
3839
main.cpp
3940
Application.cpp
@@ -111,7 +112,6 @@ target_link_libraries(${PROJECT_NAME}
111112
digidocpp::digidocpp
112113
${LDAP_LIBRARIES}
113114
$<TARGET_NAME_IF_EXISTS:flatbuffers::flatbuffers>
114-
$<TARGET_NAME_IF_EXISTS:flatbuffers::flatbuffers_shared>
115115
ZLIB::ZLIB
116116
)
117117

@@ -160,16 +160,9 @@ foreach(SCHEMA ${SCHEMAS})
160160
endforeach()
161161

162162
if( APPLE )
163-
file(GLOB_RECURSE RESOURCE_FILES
164-
${CMAKE_CURRENT_SOURCE_DIR}/mac/Resources/*.icns
165-
${CMAKE_CURRENT_SOURCE_DIR}/mac/Resources/*.strings)
166-
foreach(_file ${RESOURCE_FILES})
167-
get_filename_component(_file_dir ${_file} PATH)
168-
file(RELATIVE_PATH _file_dir ${CMAKE_CURRENT_SOURCE_DIR}/mac ${_file_dir})
169-
set_source_files_properties( ${_file} PROPERTIES MACOSX_PACKAGE_LOCATION ${_file_dir})
170-
endforeach(_file)
171-
163+
file(GLOB RESOURCE_FILES mac/*.icns mac/*.lproj)
172164
target_sources(${PROJECT_NAME} PRIVATE ${RESOURCE_FILES} Application_mac.mm MacMenuBar.cpp MacMenuBar.h dialogs/CertificateDetails_mac.mm)
165+
set_source_files_properties(${RESOURCE_FILES} PROPERTIES MACOSX_PACKAGE_LOCATION Resources)
173166
set_source_files_properties( Application_mac.mm dialogs/CertificateDetails_mac.mm PROPERTIES COMPILE_FLAGS "-fobjc-arc" )
174167
set_source_files_properties( LdapSearch.cpp PROPERTIES COMPILE_FLAGS "-Wno-deprecated-declarations" )
175168
target_link_libraries(${PROJECT_NAME} "-framework QuickLookUI" "-fobjc-arc")
@@ -180,7 +173,7 @@ if( APPLE )
180173
COMMAND cp -a $<TARGET_BUNDLE_DIR:DigiDocQL> $<TARGET_BUNDLE_CONTENT_DIR:${PROJECT_NAME}>/PlugIns
181174
)
182175
add_custom_target(macdeployqt DEPENDS ${PROJECT_NAME}
183-
COMMAND ${qtCore_install_prefix}/macdeployqt $<TARGET_BUNDLE_DIR:${PROJECT_NAME}>
176+
COMMAND Qt::macdeployqt $<TARGET_BUNDLE_DIR:${PROJECT_NAME}>
184177
COMMAND rm -rf $<TARGET_BUNDLE_CONTENT_DIR:${PROJECT_NAME}>/PlugIns/bearer
185178
COMMAND cp -a /Library/Frameworks/digidocpp.framework $<TARGET_BUNDLE_CONTENT_DIR:${PROJECT_NAME}>/Frameworks
186179
COMMAND rm $<TARGET_BUNDLE_CONTENT_DIR:${PROJECT_NAME}>/Frameworks/digidocpp.framework/Resources/digidoc-tool
@@ -289,7 +282,7 @@ elseif(WIN32)
289282
COMMAND ${CMAKE_COMMAND} -E copy ${LIBS_PATH}/digidocpp.conf appx
290283
COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_SOURCE_DIR}/Assets appx/Assets
291284
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBS_PATH}/schema appx/schema
292-
COMMAND ${qtCore_install_prefix}/windeployqt --no-translations --no-compiler-runtime --no-patchqt --force-openssl
285+
COMMAND Qt::windeployqt --no-translations --no-compiler-runtime --no-patchqt --force-openssl
293286
--skip-plugin-types generic,networkinformation,iconengines --exclude-plugins qjpeg,qico,qgif,qcertonlybackend,qschannelbackend appx
294287
COMMAND makeappx.exe pack -d appx -p ${MSI_FILE}.appx
295288
# https://msdn.microsoft.com/en-us/library/windows/desktop/jj835832(v=vs.85).aspx

client/dialogs/AddRecipients.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -212,7 +212,7 @@ void AddRecipients::addRecipientToRightPane(Item *item, bool update)
212212

213213
rightList.append(key);
214214

215-
auto *rightItem = new AddressItem(key, AddressItem::Remove, ui->rightPane);
215+
auto *rightItem = new AddressItem(CKey(key), AddressItem::Remove, ui->rightPane);
216216
connect(rightItem, &AddressItem::remove, this, [this](Item *item) {
217217
auto *rightItem = qobject_cast<AddressItem*>(item);
218218
if(auto *leftItem = itemListValue(ui->leftPane, rightItem->getKey().cert))
@@ -242,7 +242,7 @@ AddressItem* AddRecipients::itemListValue(ItemList *list, const CKey &cert)
242242
return nullptr;
243243
}
244244

245-
QList<CKey> AddRecipients::keys()
245+
QList<CKey> AddRecipients::keys() const
246246
{
247247
QList<CKey> recipients;
248248
for(auto *item: ui->rightPane->items)

client/dialogs/AddRecipients.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ class AddRecipients final : public QDialog
4141
explicit AddRecipients(ItemList* itemList, QWidget *parent = nullptr);
4242
~AddRecipients() final;
4343

44-
QList<CKey> keys();
44+
QList<CKey> keys() const;
4545
bool isUpdated() const;
4646

4747
private:
File renamed without changes.
File renamed without changes.

0 commit comments

Comments
 (0)