diff --git a/src/connectivity/ip_utils.cpp b/src/connectivity/ip_utils.cpp
index 217472bc305c0777115ce304ed9b138dc00cfef5..83a48333e511873799e604489d27fab7d4906920 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 8e6649e5f9161c20e92cf682bb6b3a9ad3f95504..3023ac16722ba793ec012042aa224fdf1d03e920 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 e3a61b6334646a39414a217223497be7f49201ac..948100a9a3fce2008f979d75b0f09a54e6cacd1b 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 09d9c1a1c5b363e0bbabfffa6b32f3170e05573f..7d9b1ec6f64ece5cb844b7e2aff316ee94209e35 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 b3ab0bb8c3f1fc0aebce44482763da7f857c0c21..1f67dad6221d04c4d22748e0e2d2f2106cde839d 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 56b48d99456601a7138e928fde24b7c760ea4646..613a9c0f3bb5a4d07b8a73a3fb24ac9f4fe34e86 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 a4fb90fc05f4ee8671ef78db6b05c8058e21c031..af34fad755af6cbbf1f3c8ccbcb9b93bbf42e00a 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,