odk/source/com/sun/star/lib/loader/WinRegKey.java | 16 +++++++++++++++- tools/source/fsys/urlobj.cxx | 4 +++- 2 files changed, 18 insertions(+), 2 deletions(-)
New commits: commit 1b3d662f291d10e42232f9f842affe5ad35035f0 Author: Caolán McNamara <[email protected]> AuthorDate: Thu Aug 18 12:15:29 2022 +0100 Commit: Caolán McNamara <[email protected]> CommitDate: Thu Aug 18 16:05:39 2022 +0200 cid#1500387 alternative silence Resource leak This reverts commit d40bfecddcac38006ee989d8072fb2b453cf6b9f for a different approach Change-Id: I8e058efbff214456b91346ce16e7eba7a89a8a53 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/138480 Tested-by: Jenkins Reviewed-by: Caolán McNamara <[email protected]> diff --git a/tools/source/fsys/urlobj.cxx b/tools/source/fsys/urlobj.cxx index b7d3c241ef38..764bb28ef623 100644 --- a/tools/source/fsys/urlobj.cxx +++ b/tools/source/fsys/urlobj.cxx @@ -616,8 +616,10 @@ std::unique_ptr<SvMemoryStream> memoryStream( new char[length]); memcpy(b.get(), data, length); std::unique_ptr<SvMemoryStream> s( - new SvMemoryStream(b.release(), length, StreamMode::READ)); + new SvMemoryStream(b.get(), length, StreamMode::READ)); s->ObjectOwnsMemory(true); + // coverity[leaked_storage : FALSE] - belongs to SvMemoryStream s at this point + b.release(); return s; } commit 6105706deb71aa134f2f754aed6f50daf3b8d620 Author: Caolán McNamara <[email protected]> AuthorDate: Thu Aug 18 12:14:36 2022 +0100 Commit: Caolán McNamara <[email protected]> CommitDate: Thu Aug 18 16:05:26 2022 +0200 cid#1500586 Resource leak Change-Id: I32d837af7574f6eb4ac7db4759139d0b78f63e75 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/138479 Tested-by: Jenkins Reviewed-by: Caolán McNamara <[email protected]> diff --git a/odk/source/com/sun/star/lib/loader/WinRegKey.java b/odk/source/com/sun/star/lib/loader/WinRegKey.java index 3276458fc6f6..597b506d9ca2 100644 --- a/odk/source/com/sun/star/lib/loader/WinRegKey.java +++ b/odk/source/com/sun/star/lib/loader/WinRegKey.java @@ -20,6 +20,7 @@ package com.sun.star.lib.loader; import java.io.BufferedReader; +import java.io.IOException; import java.io.InputStreamReader; import java.nio.charset.Charset; import java.util.regex.Matcher; @@ -40,13 +41,23 @@ final class WinRegKey { m_keyName = keyName; } + private static void close(BufferedReader c) { + if (c == null) return; + try { + c.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + /** * Reads the default string value. */ public String getStringValue() throws WinRegKeyException { + BufferedReader r = null; try { Process p = Runtime.getRuntime().exec(new String[]{"reg", "QUERY", m_keyName}); - BufferedReader r = new BufferedReader( + r = new BufferedReader( new InputStreamReader(p.getInputStream(), Charset.defaultCharset())); String v = null; Pattern pt = Pattern.compile("\\s+\\(Default\\)\\s+REG_SZ\\s+(.+)"); @@ -77,6 +88,9 @@ final class WinRegKey { } catch (Exception e) { throw new WinRegKeyException(e); } + finally { + close(r); + } } }
