]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
Fix a few off-by-one errors 7288/head
authorRuben Kerkhof <ruben@rubenkerkhof.com>
Mon, 17 Dec 2018 11:55:57 +0000 (12:55 +0100)
committerRuben Kerkhof <ruben@rubenkerkhof.com>
Mon, 17 Dec 2018 11:55:57 +0000 (12:55 +0100)
modules/opendbxbackend/odbxbackend.cc
pdns/dnsparser.cc
pdns/misc.cc
pdns/rcpgenerator.cc
pdns/sillyrecords.cc
pdns/zoneparser-tng.cc

index 591ac7cbf2e7e6f890f894547ac9c6c009bd46d1..2ffd7cebe97088f19009b3fce4901bf457b834c0 100644 (file)
@@ -259,7 +259,7 @@ bool OdbxBackend::list( const DNSName& target, int zoneid, bool include_disabled
                m_qname.clear();
                m_result = NULL;
 
-               int len = snprintf( m_buffer, sizeof( m_buffer ) - 1, "%d", zoneid );
+               int len = snprintf( m_buffer, sizeof( m_buffer ), "%d", zoneid );
 
                if( len < 0 )
                {
@@ -321,7 +321,7 @@ void OdbxBackend::lookup( const QType& qtype, const DNSName& qname, DNSPacket* d
                                stmtref = strbind( ":type", qtype.getName(), stmt );
                        }
 
-                       int len = snprintf( m_buffer, sizeof( m_buffer ) - 1, "%d", zoneid );
+                       int len = snprintf( m_buffer, sizeof( m_buffer ), "%d", zoneid );
 
                        if( len < 0 )
                        {
@@ -433,7 +433,7 @@ void OdbxBackend::setFresh( uint32_t domain_id )
                        throw( DBException( "Error: Server unreachable" ) );
                }
 
-               len = snprintf( m_buffer, sizeof( m_buffer ) - 1, getArg( "sql-update-lastcheck" ).c_str(), time( 0 ), domain_id );
+               len = snprintf( m_buffer, sizeof( m_buffer ), getArg( "sql-update-lastcheck" ).c_str(), time( 0 ), domain_id );
 
                if( len < 0 )
                {
@@ -473,7 +473,7 @@ void OdbxBackend::setNotified( uint32_t domain_id, uint32_t serial )
                        throw( DBException( "Error: Server unreachable" ) );
                }
 
-               int len = snprintf( m_buffer, sizeof( m_buffer ) - 1, getArg( "sql-update-serial" ).c_str(), serial, domain_id );
+               int len = snprintf( m_buffer, sizeof( m_buffer ), getArg( "sql-update-serial" ).c_str(), serial, domain_id );
 
                if( len < 0 )
                {
@@ -601,7 +601,7 @@ bool OdbxBackend::createSlaveDomain( const string& ip, const DNSName& domain, co
                        return false;
                }
 
-               int len = snprintf( m_buffer, sizeof( m_buffer ) - 1, getArg( "sql-insert-slave" ).c_str(), escape( domain.makeLowerCase().toStringRootDot(), WRITE ).c_str(),
+               int len = snprintf( m_buffer, sizeof( m_buffer ), getArg( "sql-insert-slave" ).c_str(), escape( domain.makeLowerCase().toStringRootDot(), WRITE ).c_str(),
                        escape( ip, WRITE ).c_str(), escape( account, WRITE ).c_str() );
 
                if( len < 0 )
@@ -652,7 +652,7 @@ bool OdbxBackend::feedRecord( const DNSResourceRecord& rr, const DNSName& ordern
                        trim_left(content);
                }
 
-               int len = snprintf( m_buffer, sizeof( m_buffer ) - 1, getArg( "sql-insert-record" ).c_str(), rr.domain_id,
+               int len = snprintf( m_buffer, sizeof( m_buffer ), getArg( "sql-insert-record" ).c_str(), rr.domain_id,
                        escape( rr.qname.makeLowerCase().toStringRootDot(), WRITE ).c_str(), rr.qtype.getName().c_str(), rr.ttl, priority,
                        escape( content, WRITE ).c_str() );
 
@@ -695,7 +695,7 @@ bool OdbxBackend::startTransaction( const DNSName& domain, int zoneid )
 
                string stmtref =  getArg( "sql-transactbegin" );
                if( !execStmt( stmtref.c_str(), stmtref.size(), WRITE ) ) { return false; }
-               int len = snprintf( m_buffer, sizeof( m_buffer ) - 1, "%d", zoneid );
+               int len = snprintf( m_buffer, sizeof( m_buffer ), "%d", zoneid );
 
                if( len < 0 )
                {
index 1878fc6b90d152e085b632e3aa315e6ef88140ce..233258a3efb57fcafb3a448638013ec11c03b4dc 100644 (file)
@@ -63,7 +63,7 @@ public:
     str<<"\\# "<<(unsigned int)d_record.size()<<" ";
     char hex[4];
     for(size_t n=0; n<d_record.size(); ++n) {
-      snprintf(hex,sizeof(hex)-1, "%02x", d_record.at(n));
+      snprintf(hex, sizeof(hex), "%02x", d_record.at(n));
       str << hex;
     }
     return str.str();
index 196a4bcf4822bd309f069cc0ccb5c49108647503..39e897de81d1718c2440000b562f06e8cd886a82 100644 (file)
@@ -567,7 +567,7 @@ bool IpToU32(const string &str, uint32_t *ip)
 string U32ToIP(uint32_t val)
 {
   char tmp[17];
-  snprintf(tmp, sizeof(tmp)-1, "%u.%u.%u.%u",
+  snprintf(tmp, sizeof(tmp), "%u.%u.%u.%u",
            (val >> 24)&0xff,
            (val >> 16)&0xff,
            (val >>  8)&0xff,
index 371158582f738e4deabd5145fc883b323a78507e..a2d82c8536ff2eb8888bd088d987a33b31174aeb 100644 (file)
@@ -546,7 +546,7 @@ void RecordTextWriter::xfrTime(const uint32_t& val)
   gmtime_r(&time, &tm);
 
   char tmp[16];
-  snprintf(tmp,sizeof(tmp)-1, "%04d%02d%02d" "%02d%02d%02d", 
+  snprintf(tmp, sizeof(tmp), "%04d%02d%02d" "%02d%02d%02d", 
            tm.tm_year+1900, tm.tm_mon+1, tm.tm_mday, 
            tm.tm_hour, tm.tm_min, tm.tm_sec);
   
@@ -605,7 +605,7 @@ void RecordTextWriter::xfrHexBlob(const string& val, bool)
   string::size_type limit=val.size();
   char tmp[5];
   for(string::size_type n = 0; n < limit; ++n) {
-    snprintf(tmp, sizeof(tmp)-1, "%02x", (unsigned char)val[n]);
+    snprintf(tmp, sizeof(tmp), "%02x", (unsigned char)val[n]);
     d_string+=tmp;
   }
 }
index d4030ef26559dce0679e662e63a3f06a5d4c4fe9..933a16ee0de773ba850e5272cbc59831f1674536 100644 (file)
@@ -320,7 +320,7 @@ string LOCRecordContent::getZoneRepresentation(bool noDot) const
   double remlat=60.0*(latitude-(int)latitude);
   double remlong=60.0*(longitude-(int)longitude);
   char ret[80];
-  snprintf(ret,sizeof(ret)-1,"%d %d %2.03f %c %d %d %2.03f %c %.2fm %.2fm %.2fm %.2fm",
+  snprintf(ret, sizeof(ret), "%d %d %2.03f %c %d %d %2.03f %c %.2fm %.2fm %.2fm %.2fm",
            abs((int)latitude), abs((int) ((latitude-(int)latitude)*60)),
            fabs((double)((remlat-(int)remlat)*60.0)),
            latitude>0 ? 'N' : 'S',
index 7a850ffc8e7844561b0ae0cb3613bed39387fb25..c83d5f38188843a51dcadebac4f9aac460800e6a 100644 (file)
@@ -196,10 +196,10 @@ bool ZoneParserTNG::getTemplateLine()
         sscanf(spec.c_str(), "%d,%d,%c", &offset, &width, &radix);  // parse format specifier
 
         char sformat[12];
-        snprintf(sformat, sizeof(sformat) - 1, "%%0%d%c", width, radix); // make into printf-style format
+        snprintf(sformat, sizeof(sformat), "%%0%d%c", width, radix); // make into printf-style format
 
         char tmp[80];
-        snprintf(tmp, sizeof(tmp)-1, sformat, d_templatecounter + offset); // and do the actual printing
+        snprintf(tmp, sizeof(tmp), sformat, d_templatecounter + offset); // and do the actual printing
         outpart+=tmp;
       }
       else