From 7115ba0c9fb7a8d117f1b71479299dafca5fe11e Mon Sep 17 00:00:00 2001
From: Adrien Beraud <adrien.beraud@savoirfairelinux.com>
Date: Wed, 11 Jan 2023 10:40:03 -0500
Subject: [PATCH] misc: fix various warnings

Change-Id: I3fde5423378ae952bf53e2b81b41d07f03e5ada3
---
 src/connectivity/ip_utils.cpp  |  2 +-
 src/connectivity/ip_utils.h    |  7 -------
 src/fileutils.cpp              | 34 ++++++++++++++--------------------
 src/media/audio/audiolayer.cpp |  2 +-
 src/media/media_encoder.cpp    |  2 ++
 src/sip/sipaccount_config.cpp  | 21 ---------------------
 src/sip/sipvoiplink.cpp        |  2 +-
 7 files changed, 19 insertions(+), 51 deletions(-)

diff --git a/src/connectivity/ip_utils.cpp b/src/connectivity/ip_utils.cpp
index 217472bc30..83a48333e5 100644
--- a/src/connectivity/ip_utils.cpp
+++ b/src/connectivity/ip_utils.cpp
@@ -149,7 +149,7 @@ ip_utils::getHostName(char* out, size_t out_len)
         i += sizeof *pifReq;
         // See if this is the sort of interface we want to deal with.
         memset(ifReq.ifr_name, 0, sizeof(ifReq.ifr_name));
-        strncpy(ifReq.ifr_name, pifReq->ifr_name, sizeof(ifReq.ifr_name) - 1);
+        strncpy(ifReq.ifr_name, pifReq->ifr_name, sizeof(ifReq.ifr_name));
         ioctl(localSock, SIOCGIFFLAGS, &ifReq);
         // Skip loopback, point-to-point and down interfaces.
         // except don't skip down interfaces if we're trying to get
diff --git a/src/connectivity/ip_utils.h b/src/connectivity/ip_utils.h
index 8e6649e5f9..3023ac1672 100644
--- a/src/connectivity/ip_utils.h
+++ b/src/connectivity/ip_utils.h
@@ -179,13 +179,6 @@ public:
 
     inline operator const sockaddr*() const { return reinterpret_cast<const sockaddr*>(&addr); }
 
-    inline operator sockaddr_storage()
-    {
-        sockaddr_storage ss;
-        memcpy(&ss, &addr, getLength());
-        return ss;
-    }
-
     inline const pj_sockaddr* pjPtr() const { return &addr; }
 
     inline pj_sockaddr* pjPtr() { return &addr; }
diff --git a/src/fileutils.cpp b/src/fileutils.cpp
index e3a61b6334..948100a9a3 100644
--- a/src/fileutils.cpp
+++ b/src/fileutils.cpp
@@ -79,6 +79,7 @@
 #include <iostream>
 #include <stdexcept>
 #include <limits>
+#include <array>
 
 #include <cstdlib>
 #include <cstring>
@@ -931,32 +932,25 @@ eraseFile_posix(const std::string& path, bool dosync)
         return false;
     }
 
-    uintmax_t size_blocks = st.st_size / ERASE_BLOCK;
-    if (st.st_size % ERASE_BLOCK)
-        size_blocks++;
-
-    char* buffer;
-    try {
-        buffer = new char[ERASE_BLOCK];
-    } catch (std::bad_alloc& ba) {
-        JAMI_WARN("Can not allocate buffer for erasing %s.", path.c_str());
-        close(fd);
-        return false;
-    }
-    memset(buffer, 0x00, ERASE_BLOCK);
-
-    for (uintmax_t i = 0; i < size_blocks; i++) {
-        lseek(fd, i * ERASE_BLOCK, SEEK_SET);
-        write(fd, buffer, ERASE_BLOCK);
+    lseek(fd, 0, SEEK_SET);
+
+    std::array<char, ERASE_BLOCK> buffer;
+    buffer.fill(0);
+    decltype(st.st_size) written(0);
+    while (written < st.st_size) {
+        auto ret = write(fd, buffer.data(), buffer.size());
+        if (ret < 0) {
+            JAMI_WARNING("Error while overriding file with zeros.");
+            break;
+        } else
+            written += ret;
     }
 
-    delete[] buffer;
-
     if (dosync)
         fsync(fd);
 
     close(fd);
-    return true;
+    return written >= st.st_size;
 }
 #endif
 
diff --git a/src/media/audio/audiolayer.cpp b/src/media/audio/audiolayer.cpp
index 09d9c1a1c5..7d9b1ec6f6 100644
--- a/src/media/audio/audiolayer.cpp
+++ b/src/media/audio/audiolayer.cpp
@@ -47,6 +47,7 @@ AudioLayer::AudioLayer(const AudioPreference& pref)
     , isPlaybackMuted_(pref.getPlaybackMuted())
     , captureGain_(pref.getVolumemic())
     , playbackGain_(pref.getVolumespkr())
+    , pref_(pref)
     , mainRingBuffer_(
           Manager::instance().getRingBufferPool().getRingBuffer(RingBufferPool::DEFAULT_ID))
     , audioFormat_(Manager::instance().getRingBufferPool().getInternalAudioFormat())
@@ -54,7 +55,6 @@ AudioLayer::AudioLayer(const AudioPreference& pref)
     , urgentRingBuffer_("urgentRingBuffer_id", SIZEBUF, audioFormat_)
     , resampler_(new Resampler)
     , lastNotificationTime_()
-    , pref_(pref)
 {
     urgentRingBuffer_.createReadOffset(RingBufferPool::DEFAULT_ID);
 
diff --git a/src/media/media_encoder.cpp b/src/media/media_encoder.cpp
index b3ab0bb8c3..1f67dad622 100644
--- a/src/media/media_encoder.cpp
+++ b/src/media/media_encoder.cpp
@@ -243,6 +243,8 @@ MediaEncoder::initStream(const SystemCodecInfo& systemCodecInfo, AVBufferRef* fr
         mediaType = AVMEDIA_TYPE_VIDEO;
     else if (systemCodecInfo.mediaType == MEDIA_AUDIO)
         mediaType = AVMEDIA_TYPE_AUDIO;
+    else
+        throw MediaEncoderException("Unsuported media type");
 
     AVStream* stream {nullptr};
 
diff --git a/src/sip/sipaccount_config.cpp b/src/sip/sipaccount_config.cpp
index 56b48d9945..613a9c0f3b 100644
--- a/src/sip/sipaccount_config.cpp
+++ b/src/sip/sipaccount_config.cpp
@@ -76,16 +76,6 @@ static constexpr unsigned MIN_REGISTRATION_TIME = 60;                  // second
 using yaml_utils::parseValueOptional;
 using yaml_utils::parseVectorMap;
 
-static void
-addRangeToDetails(std::map<std::string, std::string>& a,
-                  const char* minKey,
-                  const char* maxKey,
-                  const std::pair<uint16_t, uint16_t>& range)
-{
-    a.emplace(minKey, std::to_string(range.first));
-    a.emplace(maxKey, std::to_string(range.second));
-}
-
 void
 SipAccountConfig::serialize(YAML::Emitter& out) const
 {
@@ -256,17 +246,6 @@ SipAccountConfig::fromMap(const std::map<std::string, std::string>& details)
     parseBool(details, Conf::CONFIG_PRESENCE_ENABLED, presenceEnabled);
     parseString(details, Conf::CONFIG_ACCOUNT_DTMF_TYPE, dtmfType);
 
-    int tmpMin = -1;
-    parseInt(details, Conf::CONFIG_ACCOUNT_AUDIO_PORT_MIN, tmpMin);
-    int tmpMax = -1;
-    parseInt(details, Conf::CONFIG_ACCOUNT_AUDIO_PORT_MAX, tmpMax);
-    updateRange(tmpMin, tmpMax, audioPortRange);
-    tmpMin = -1;
-    parseInt(details, Conf::CONFIG_ACCOUNT_VIDEO_PORT_MIN, tmpMin);
-    tmpMax = -1;
-    parseInt(details, Conf::CONFIG_ACCOUNT_VIDEO_PORT_MAX, tmpMax);
-    updateRange(tmpMin, tmpMax, videoPortRange);
-
     // srtp settings
     parseBool(details, Conf::CONFIG_SRTP_RTP_FALLBACK, srtpFallback);
     auto iter = details.find(Conf::CONFIG_SRTP_KEY_EXCHANGE);
diff --git a/src/sip/sipvoiplink.cpp b/src/sip/sipvoiplink.cpp
index a4fb90fc05..af34fad755 100644
--- a/src/sip/sipvoiplink.cpp
+++ b/src/sip/sipvoiplink.cpp
@@ -1665,7 +1665,7 @@ SIPVoIPLink::findLocalAddressFromSTUN(pjsip_transport* transport,
 
     case PJ_SUCCESS:
         port = pj_sockaddr_in_get_port(&mapped_addr);
-        addr = IpAddr((const pj_sockaddr&) mapped_addr).toString();
+        addr = IpAddr((const sockaddr_in&) mapped_addr).toString();
         JAMI_DBG("STUN server %.*s replied '%s:%u'",
                  (int) stunServerName->slen,
                  stunServerName->ptr,
-- 
GitLab