From 329c783eef098093ecb963e9dde8c04e4f371896 Mon Sep 17 00:00:00 2001
From: Fons Rademakers <Fons.Rademakers@cern.ch>
Date: Sat, 29 Oct 2011 22:38:37 +0000
Subject: [PATCH] fix coverity issues.

git-svn-id: http://root.cern.ch/svn/root/trunk@41644 27541ba8-7e3a-0410-8455-c3a389f83636
---
 net/krb5auth/src/TKSocket.cxx |  1 +
 net/net/src/THTTPMessage.cxx  | 21 ++++++++++++---------
 net/net/src/TSSLSocket.cxx    |  8 ++++----
 net/rpdutils/src/rpdutils.cxx | 11 ++++++-----
 4 files changed, 23 insertions(+), 18 deletions(-)

diff --git a/net/krb5auth/src/TKSocket.cxx b/net/krb5auth/src/TKSocket.cxx
index e50cdf2ea81..07504f98681 100644
--- a/net/krb5auth/src/TKSocket.cxx
+++ b/net/krb5auth/src/TKSocket.cxx
@@ -282,6 +282,7 @@ Int_t TKSocket::BlockRead(char *&buf, EEncoding &type)
    if (rc <= 0) {
       SysError("BlockRead","reading data (%d), %s",
                rc, error_message(rc));
+      delete [] enc.data;
       return -1;
    }
 
diff --git a/net/net/src/THTTPMessage.cxx b/net/net/src/THTTPMessage.cxx
index 709e15c8395..f35779507ab 100644
--- a/net/net/src/THTTPMessage.cxx
+++ b/net/net/src/THTTPMessage.cxx
@@ -63,17 +63,18 @@ THTTPMessage::THTTPMessage(EHTTP_Verb mverb, TString mpath, TString mbucket, TSt
    fAccessIdKey  = maidkey;
    fHasRange     = kFALSE;
    fInitByte     = 0;
-   fOffset       = 0;  
-   fLen          = 0;   
-   fNumBuf       = 0;   
-   fCurrentBuf   = 0;   
-                        
+   fOffset       = 0;
+   fLen          = 0;
+   fNumBuf       = 0;
+   fCurrentBuf   = 0;
+   fLength       = 0;
+
    fSignature    = Sign();
-}                
+}
 
 //______________________________________________________________________________
 THTTPMessage::THTTPMessage(EHTTP_Verb mverb, TString mpath, TString mbucket, TString mhost,
-                           TString maprefix, TString maid, TString maidkey, Long64_t offset, 
+                           TString maprefix, TString maid, TString maidkey, Long64_t offset,
                            Long64_t *pos, Int_t *len, Int_t nbuf)
 {
    // THTTPMessage for HTTP Get Requests with Range.
@@ -92,6 +93,7 @@ THTTPMessage::THTTPMessage(EHTTP_Verb mverb, TString mpath, TString mbucket, TSt
    fLen         = len;
    fNumBuf      = nbuf;
    fCurrentBuf  = 0;
+   fLength      = 0;
 
    fSignature   = Sign();
 }
@@ -118,6 +120,7 @@ THTTPMessage &THTTPMessage::operator=(const THTTPMessage &rhs)
       fAccessId    = rhs.fAccessId;
       fAccessIdKey = rhs.fAccessIdKey;
       fSignature   = rhs.fSignature;
+      fLength      = rhs.fLength;
    }
    return *this;
 }
@@ -237,10 +240,10 @@ TString THTTPMessage::GetRequest()
          n += fLen[i];
          fCurrentBuf++;
          if (msg.Length() > 8000) {
-            break;      
+            break;
          }
       }
-      msg += "\r\n";   
+      msg += "\r\n";
    }
 
    msg += CreateAuth()+"\r\n";
diff --git a/net/net/src/TSSLSocket.cxx b/net/net/src/TSSLSocket.cxx
index 194aa16f7ea..4ab28b3d50c 100644
--- a/net/net/src/TSSLSocket.cxx
+++ b/net/net/src/TSSLSocket.cxx
@@ -166,13 +166,13 @@ void TSSLSocket::SetUpSSL(const char *cafile, const char *capath,
    // Set up the static configuration variables.
 
    if (cafile)
-      strncpy(fgSSLCAFile, cafile, FILENAME_MAX);
+      strlcpy(fgSSLCAFile, cafile, FILENAME_MAX);
    if (capath)
-      strncpy(fgSSLCAPath, capath, FILENAME_MAX);
+      strlcpy(fgSSLCAPath, capath, FILENAME_MAX);
    if (ucert)
-      strncpy(fgSSLUCert,  ucert,  FILENAME_MAX);
+      strlcpy(fgSSLUCert,  ucert,  FILENAME_MAX);
    if (ukey)
-      strncpy(fgSSLUKey,   ukey,   FILENAME_MAX);
+      strlcpy(fgSSLUKey,   ukey,   FILENAME_MAX);
 }
 
 //______________________________________________________________________________
diff --git a/net/rpdutils/src/rpdutils.cxx b/net/rpdutils/src/rpdutils.cxx
index 45fe8ac9bec..a10875682ff 100644
--- a/net/rpdutils/src/rpdutils.cxx
+++ b/net/rpdutils/src/rpdutils.cxx
@@ -3296,11 +3296,6 @@ int RpdSRPUser(const char *sstr)
 #else
    struct t_server *ts = t_serveropenfromfiles(gUser, tpw, tcnf);
 #endif
-   if (!ts) {
-      NetSend(kErrNoUser, kROOTD_ERR);
-      ErrorInfo("RpdSRPUser: user %s not found SRP password file", gUser);
-      return auth;
-   }
 
    if (tcnf)
       t_closeconf(tcnf);
@@ -3311,6 +3306,12 @@ int RpdSRPUser(const char *sstr)
    if (fp1)
       fclose(fp1);
 
+   if (!ts) {
+      NetSend(kErrNoUser, kROOTD_ERR);
+      ErrorInfo("RpdSRPUser: user %s not found SRP password file", gUser);
+      return auth;
+   }
+
    char hexbuf[MAXHEXPARAMLEN];
 
    // send n to client
-- 
GitLab