From 75a214a4aead9140167aa5d4cb23bb9f4d0bb2b3 Mon Sep 17 00:00:00 2001 From: David Abdurachmanov Date: Fri, 13 Jan 2017 13:07:28 +0100 Subject: [PATCH] [RFC] GCC 7 error cleanup Signed-off-by: David Abdurachmanov --- src/XrdApps/XrdMpxStats.cc | 1 + src/XrdCl/XrdClZipArchiveReader.cc | 2 +- src/XrdClient/XrdClient.cc | 4 ++-- src/XrdCms/XrdCmsManTree.cc | 2 +- src/XrdCms/XrdCmsManTree.hh | 2 +- src/XrdCms/XrdCmsReq.cc | 22 +++++++++++----------- src/XrdCns/XrdCnsConfig.cc | 1 + src/XrdCns/XrdCnsDaemon.cc | 1 + src/XrdCns/XrdCnsLogRec.hh | 4 ++-- src/XrdCns/XrdCnsSsi.cc | 2 +- src/XrdCrypto/XrdCryptosslX509.cc | 18 ++++++++---------- src/XrdCrypto/XrdCryptosslX509Crl.cc | 9 ++++----- src/XrdCrypto/XrdCryptosslX509Req.cc | 9 ++++----- src/XrdFrc/XrdFrcReqFile.cc | 2 ++ src/XrdFrc/XrdFrcUtils.cc | 4 ++-- src/XrdFrm/XrdFrmConfig.cc | 1 + src/XrdFrm/XrdFrmTransfer.cc | 2 +- src/XrdHttp/XrdHttpProtocol.cc | 2 +- src/XrdHttp/XrdHttpReq.cc | 1 + src/XrdOfs/XrdOfsTPCProg.hh | 2 +- src/XrdOuc/XrdOucMsubs.cc | 1 + src/XrdOuc/XrdOucPup.cc | 3 ++- src/XrdSecpwd/XrdSecProtocolpwd.cc | 3 +++ src/XrdSecpwd/XrdSecpwdSrvAdmin.cc | 2 ++ src/XrdSecsss/XrdSecProtocolsss.cc | 2 +- src/XrdSut/XrdSutPFile.cc | 1 + src/XrdSys/XrdSysError.cc | 2 +- src/XrdXml/tinyxmlparser.cpp | 3 +++ src/XrdXrootd/XrdXrootdConfig.cc | 4 ++-- 29 files changed, 63 insertions(+), 49 deletions(-) diff --git a/src/XrdApps/XrdMpxStats.cc b/src/XrdApps/XrdMpxStats.cc index 8f7cb0a4ad5..103d7e6e814 100644 --- a/src/XrdApps/XrdMpxStats.cc +++ b/src/XrdApps/XrdMpxStats.cc @@ -473,6 +473,7 @@ int main(int argc, char *argv[]) else {Say.Emsg(":", "Invalid format - ", optarg); Usage(1);} break; case 'h': Usage(0); + break; case 'p': if (!(Port = atoi(optarg))) {Say.Emsg(":", "Invalid port number - ", optarg); Usage(1);} break; diff --git a/src/XrdCl/XrdClZipArchiveReader.cc b/src/XrdCl/XrdClZipArchiveReader.cc index cddcaa3c42a..c2301f87c60 100644 --- a/src/XrdCl/XrdClZipArchiveReader.cc +++ b/src/XrdCl/XrdClZipArchiveReader.cc @@ -243,7 +243,7 @@ class ZipArchiveReaderImpl { delete pBuffer; ClearRecords(); - pArchive.Close(); + XRootDStatus st = pArchive.Close(); } File pArchive; diff --git a/src/XrdClient/XrdClient.cc b/src/XrdClient/XrdClient.cc index dc1ee845b79..a641cceff2c 100644 --- a/src/XrdClient/XrdClient.cc +++ b/src/XrdClient/XrdClient.cc @@ -1372,7 +1372,7 @@ bool XrdClient::OpenFileWhenRedirected(char *newfhandle, bool &wasopen) Info(XrdClientDebug::kHIDEBUG, "OpenFileWhenRedirected", "Stripping off the 'delete' option." ); - options &= !kXR_delete; + options &= ~kXR_delete; options |= kXR_open_updt; } @@ -1380,7 +1380,7 @@ bool XrdClient::OpenFileWhenRedirected(char *newfhandle, bool &wasopen) Info(XrdClientDebug::kHIDEBUG, "OpenFileWhenRedirected", "Stripping off the 'new' option." ); - options &= !kXR_new; + options &= ~kXR_new; options |= kXR_open_updt; } diff --git a/src/XrdCms/XrdCmsManTree.cc b/src/XrdCms/XrdCmsManTree.cc index 35477a0577f..0c7370c4d58 100644 --- a/src/XrdCms/XrdCmsManTree.cc +++ b/src/XrdCms/XrdCmsManTree.cc @@ -79,7 +79,7 @@ int XrdCmsManTree::Connect(int nID, XrdCmsNode *nP) { static CmsDiscRequest discRequest = {{0, kYR_disc, 0, 0}}; XrdSysMutexHelper Monitor(myMutex); - char mybuff[8]; + char mybuff[16]; int i; // Rule 0: If we aborted tell the client to just stop doing this diff --git a/src/XrdCms/XrdCmsManTree.hh b/src/XrdCms/XrdCmsManTree.hh index c2fddf422f4..a41802a0161 100644 --- a/src/XrdCms/XrdCmsManTree.hh +++ b/src/XrdCms/XrdCmsManTree.hh @@ -80,7 +80,7 @@ struct TreeInfo } tmInfo[XrdCmsManager::MTMax]; -char buff[8]; +char buff[16]; int maxTMI; int numConn; int maxConn; diff --git a/src/XrdCms/XrdCmsReq.cc b/src/XrdCms/XrdCmsReq.cc index 11f633eabfe..6080b454cee 100644 --- a/src/XrdCms/XrdCmsReq.cc +++ b/src/XrdCms/XrdCmsReq.cc @@ -134,17 +134,17 @@ void XrdCmsReq::Reply_Error(int ecode, const char *emsg, int elen) // Translate the error name // switch(ecode) - {case ENOENT: eval = kYR_ENOENT; - case EPERM: eval = kYR_EPERM; - case EACCES: eval = kYR_EACCES; - case EIO: eval = kYR_EIO; - case ENOMEM: eval = kYR_ENOMEM; - case ENOSPC: eval = kYR_ENOSPC; - case ENAMETOOLONG: eval = kYR_ENAMETOOLONG; - case ENETUNREACH: eval = kYR_ENETUNREACH; - case ENOTBLK: eval = kYR_ENOTBLK; - case EISDIR: eval = kYR_EISDIR; - default: eval = kYR_EINVAL; + {case ENOENT: eval = kYR_ENOENT; break; + case EPERM: eval = kYR_EPERM; break; + case EACCES: eval = kYR_EACCES; break; + case EIO: eval = kYR_EIO; break; + case ENOMEM: eval = kYR_ENOMEM; break; + case ENOSPC: eval = kYR_ENOSPC; break; + case ENAMETOOLONG: eval = kYR_ENAMETOOLONG; break; + case ENETUNREACH: eval = kYR_ENETUNREACH; break; + case ENOTBLK: eval = kYR_ENOTBLK; break; + case EISDIR: eval = kYR_EISDIR; break; + default: eval = kYR_EINVAL; break; }; // Make sure that elen includes a null byte diff --git a/src/XrdCns/XrdCnsConfig.cc b/src/XrdCns/XrdCnsConfig.cc index c463ee2dbd6..e6ef2cc97d3 100644 --- a/src/XrdCns/XrdCnsConfig.cc +++ b/src/XrdCns/XrdCnsConfig.cc @@ -150,6 +150,7 @@ int XrdCnsConfig::Configure(int argc, char **argv, char *argt) else NoGo = NAPath("'-a'", Spec.argval); break; case 'B': Opts |= optNoCns; + [[gnu::fallthrough]]; case 'b': bPath = Spec.argval; break; case 'c': cPath = Spec.argval; diff --git a/src/XrdCns/XrdCnsDaemon.cc b/src/XrdCns/XrdCnsDaemon.cc index 193e6b163d8..e0ff3de9b06 100644 --- a/src/XrdCns/XrdCnsDaemon.cc +++ b/src/XrdCns/XrdCnsDaemon.cc @@ -96,6 +96,7 @@ void XrdCnsDaemon::getEvents(XrdOucStream &Events, const char *Who) break; case XrdCnsLogRec::lrMkdir: evP->setSize(-1); + [[gnu::fallthrough]]; case XrdCnsLogRec::lrCreate: if (!(tp=Events.GetToken())) {Miss = "mode"; break;} Mode = strtol(tp, &etp, 8); diff --git a/src/XrdCns/XrdCnsLogRec.hh b/src/XrdCns/XrdCnsLogRec.hh index 1248cd07024..6726e384832 100644 --- a/src/XrdCns/XrdCnsLogRec.hh +++ b/src/XrdCns/XrdCnsLogRec.hh @@ -58,8 +58,8 @@ struct Ctl struct Arg {char Type; // Event code - char Mode[3]; // Mode (create, inv, mkdir) - char SorT[12]; // Size (closew, inv) | TOD (eol) + char Mode[6]; // Mode (create, inv, mkdir) + char SorT[24]; // Size (closew, inv) | TOD (eol) char Mount; // Mount Index char Space; // Space Index char Rsvd[6]; // Reserved (blank filled) diff --git a/src/XrdCns/XrdCnsSsi.cc b/src/XrdCns/XrdCnsSsi.cc index 5a5cc230d5f..03582234bcd 100644 --- a/src/XrdCns/XrdCnsSsi.cc +++ b/src/XrdCns/XrdCnsSsi.cc @@ -544,7 +544,7 @@ void XrdCnsSsi::ApplyLogRec(char *lP) theDir->Files->Del(fnP); break; case XrdCnsLogRec::lrRmdir: hInv->Del(lfn); break; - case XrdCnsLogRec::lrMv: if (AddDel(lfn, lP)) break; + case XrdCnsLogRec::lrMv: if (AddDel(lfn, lP)) break; [[gnu::fallthrough]]; default: if (fnP) *(fnP -1) = '/'; Say.V("Invalid log record ", lP); nErrs++; diff --git a/src/XrdCrypto/XrdCryptosslX509.cc b/src/XrdCrypto/XrdCryptosslX509.cc index 3d986c8254a..338d6fc5d7f 100644 --- a/src/XrdCrypto/XrdCryptosslX509.cc +++ b/src/XrdCrypto/XrdCryptosslX509.cc @@ -507,8 +507,8 @@ const char *XrdCryptosslX509::IssuerHash(int alg) if (issueroldhash.length() <= 0) { // Make sure we have a certificate if (cert) { - char chash[15] = {0}; - snprintf(chash,15,"%08lx.0",X509_NAME_hash_old(cert->cert_info->issuer)); + char chash[30] = {0}; + snprintf(chash, sizeof(chash), "%08lx.0", X509_NAME_hash_old(cert->cert_info->issuer)); issueroldhash = chash; } else { DEBUG("WARNING: no certificate available - cannot extract issuer hash (md5)"); @@ -526,9 +526,8 @@ const char *XrdCryptosslX509::IssuerHash(int alg) // Make sure we have a certificate if (cert) { - char chash[15] = {0}; - if (chash[0] == 0) - snprintf(chash,15,"%08lx.0",X509_NAME_hash(cert->cert_info->issuer)); + char chash[30] = {0}; + snprintf(chash, sizeof(chash), "%08lx.0", X509_NAME_hash(cert->cert_info->issuer)); issuerhash = chash; } else { DEBUG("WARNING: no certificate available - cannot extract issuer hash (default)"); @@ -553,8 +552,8 @@ const char *XrdCryptosslX509::SubjectHash(int alg) if (subjectoldhash.length() <= 0) { // Make sure we have a certificate if (cert) { - char chash[15] = {0}; - snprintf(chash,15,"%08lx.0",X509_NAME_hash_old(cert->cert_info->subject)); + char chash[30] = {0}; + snprintf(chash, sizeof(chash), "%08lx.0", X509_NAME_hash_old(cert->cert_info->subject)); subjectoldhash = chash; } else { DEBUG("WARNING: no certificate available - cannot extract subject hash (md5)"); @@ -572,9 +571,8 @@ const char *XrdCryptosslX509::SubjectHash(int alg) // Make sure we have a certificate if (cert) { - char chash[15] = {0}; - if (chash[0] == 0) - snprintf(chash,15,"%08lx.0",X509_NAME_hash(cert->cert_info->subject)); + char chash[30] = {0}; + snprintf(chash, sizeof(chash), "%08lx.0", X509_NAME_hash(cert->cert_info->subject)); subjecthash = chash; } else { DEBUG("WARNING: no certificate available - cannot extract subject hash (default)"); diff --git a/src/XrdCrypto/XrdCryptosslX509Crl.cc b/src/XrdCrypto/XrdCryptosslX509Crl.cc index e171ad7d29a..d906166625b 100644 --- a/src/XrdCrypto/XrdCryptosslX509Crl.cc +++ b/src/XrdCrypto/XrdCryptosslX509Crl.cc @@ -482,8 +482,8 @@ const char *XrdCryptosslX509Crl::IssuerHash(int alg) if (issueroldhash.length() <= 0) { // Make sure we have a certificate if (crl) { - char chash[15] = {0}; - snprintf(chash,15,"%08lx.0",X509_NAME_hash_old(crl->crl->issuer)); + char chash[30] = {0}; + snprintf(chash, sizeof(chash), "%08lx.0", X509_NAME_hash_old(crl->crl->issuer)); issueroldhash = chash; } else { DEBUG("WARNING: no certificate available - cannot extract issuer hash (md5)"); @@ -501,9 +501,8 @@ const char *XrdCryptosslX509Crl::IssuerHash(int alg) // Make sure we have a certificate if (crl) { - char chash[15] = {0}; - if (chash[0] == 0) - snprintf(chash,15,"%08lx.0",X509_NAME_hash(crl->crl->issuer)); + char chash[30] = {0}; + snprintf(chash, sizeof(chash), "%08lx.0", X509_NAME_hash(crl->crl->issuer)); issuerhash = chash; } else { DEBUG("WARNING: no certificate available - cannot extract issuer hash (default)"); diff --git a/src/XrdCrypto/XrdCryptosslX509Req.cc b/src/XrdCrypto/XrdCryptosslX509Req.cc index edfa5a952c2..320093b88bd 100644 --- a/src/XrdCrypto/XrdCryptosslX509Req.cc +++ b/src/XrdCrypto/XrdCryptosslX509Req.cc @@ -188,8 +188,8 @@ const char *XrdCryptosslX509Req::SubjectHash(int alg) if (subjectoldhash.length() <= 0) { // Make sure we have a certificate if (creq) { - char chash[15] = {0}; - snprintf(chash,15,"%08lx.0",X509_NAME_hash_old(creq->req_info->subject)); + char chash[30] = {0}; + snprintf(chash, sizeof(chash), "%08lx.0", X509_NAME_hash_old(creq->req_info->subject)); subjectoldhash = chash; } else { DEBUG("WARNING: no certificate available - cannot extract subject hash (md5)"); @@ -207,9 +207,8 @@ const char *XrdCryptosslX509Req::SubjectHash(int alg) // Make sure we have a certificate if (creq) { - char chash[15] = {0}; - if (chash[0] == 0) - snprintf(chash,15,"%08lx.0",X509_NAME_hash(creq->req_info->subject)); + char chash[30] = {0}; + snprintf(chash, sizeof(chash), "%08lx.0", X509_NAME_hash(creq->req_info->subject)); subjecthash = chash; } else { DEBUG("WARNING: no certificate available - cannot extract subject hash (default)"); diff --git a/src/XrdFrc/XrdFrcReqFile.cc b/src/XrdFrc/XrdFrcReqFile.cc index 886aa18589b..cc982cb80c9 100644 --- a/src/XrdFrc/XrdFrcReqFile.cc +++ b/src/XrdFrc/XrdFrcReqFile.cc @@ -362,6 +362,7 @@ void XrdFrcReqFile::ListL(XrdFrcRequest &tmpReq, char *Buff, int bsz, switch(ITList[i]) {case XrdFrcRequest::getOBJ: Lfo = 0; + [[gnu::fallthrough]]; case XrdFrcRequest::getLFN: n = strlen(tmpReq.LFN+Lfo); @@ -370,6 +371,7 @@ void XrdFrcReqFile::ListL(XrdFrcRequest &tmpReq, char *Buff, int bsz, case XrdFrcRequest::getOBJCGI: Lfo = 0; + [[gnu::fallthrough]]; case XrdFrcRequest::getLFNCGI: n = strlen(tmpReq.LFN); tmpReq.LFN[n] = '?'; diff --git a/src/XrdFrc/XrdFrcUtils.cc b/src/XrdFrc/XrdFrcUtils.cc index d49c54ede4f..360ddb92b38 100644 --- a/src/XrdFrc/XrdFrcUtils.cc +++ b/src/XrdFrc/XrdFrcUtils.cc @@ -192,10 +192,10 @@ int XrdFrcUtils::MapR2Q(char Opc, int *Flags) switch(Opc) {case 0 : case '+': return XrdFrcRequest::stgQ; - case '^': if (Flags) *Flags = XrdFrcRequest::Purge; + case '^': if (Flags) *Flags = XrdFrcRequest::Purge; [[gnu::fallthrough]]; case '&': return XrdFrcRequest::migQ; case '<': return XrdFrcRequest::getQ; - case '=': if (Flags) *Flags |= XrdFrcRequest::Purge; + case '=': if (Flags) *Flags |= XrdFrcRequest::Purge; [[gnu::fallthrough]]; case '>': return XrdFrcRequest::putQ; default: break; } diff --git a/src/XrdFrm/XrdFrmConfig.cc b/src/XrdFrm/XrdFrmConfig.cc index 83efe5be3a8..f732c3db5c2 100644 --- a/src/XrdFrm/XrdFrmConfig.cc +++ b/src/XrdFrm/XrdFrmConfig.cc @@ -267,6 +267,7 @@ int XrdFrmConfig::Configure(int argc, char **argv, int (*ppf)()) case 'f': Fix = 1; break; case 'h': Usage(0); + break; case 'k': if (!(bindArg = Say.logger()->ParseKeep(optarg))) {Say.Emsg("Config","Invalid -k argument -",optarg); Usage(1); diff --git a/src/XrdFrm/XrdFrmTransfer.cc b/src/XrdFrm/XrdFrmTransfer.cc index fe60eaa6566..99966d424f8 100644 --- a/src/XrdFrm/XrdFrmTransfer.cc +++ b/src/XrdFrm/XrdFrmTransfer.cc @@ -503,7 +503,7 @@ void XrdFrmTransfer::Start() xfrP->PFN[xfrP->pfnEnd] = 0; if (xfrP->RetCode || Config.Verbose) - {char buff1[80], buff2[80]; + {char buff1[280], buff2[80]; sprintf(buff1, "%s for %s", xfrP->RetCode ? "failed" : "complete", xfrP->reqData.User); if (xfrP->RetCode == 0) *buff2 = 0; diff --git a/src/XrdHttp/XrdHttpProtocol.cc b/src/XrdHttp/XrdHttpProtocol.cc index bcaff72d20c..6d9e23b30e1 100644 --- a/src/XrdHttp/XrdHttpProtocol.cc +++ b/src/XrdHttp/XrdHttpProtocol.cc @@ -1161,7 +1161,7 @@ int XrdHttpProtocol::SendData(char *body, int bodylen) { int XrdHttpProtocol::SendSimpleResp(int code, char *desc, char *header_to_add, char *body, long long bodylen) { char outhdr[512]; - char b[16]; + char b[32]; long long l; const char *crlf = "\r\n"; outhdr[0] = '\0'; diff --git a/src/XrdHttp/XrdHttpReq.cc b/src/XrdHttp/XrdHttpReq.cc index c96c18eefbe..c67dc01cc33 100644 --- a/src/XrdHttp/XrdHttpReq.cc +++ b/src/XrdHttp/XrdHttpReq.cc @@ -1584,6 +1584,7 @@ int XrdHttpReq::PostProcessHTTPReq(bool final_) { return -1; } } + [[gnu::fallthrough]]; default: //read or readv { // Close() if this was the third state of a readv, otherwise read the next chunk diff --git a/src/XrdOfs/XrdOfsTPCProg.hh b/src/XrdOfs/XrdOfsTPCProg.hh index f7a14b7c5d2..2e6f5b330f1 100644 --- a/src/XrdOfs/XrdOfsTPCProg.hh +++ b/src/XrdOfs/XrdOfsTPCProg.hh @@ -64,7 +64,7 @@ static XrdOfsTPCProg *pgmIdle; XrdOucStream JobStream; XrdOfsTPCProg *Next; XrdOfsTPCJob *Job; - char Pname[16]; + char Pname[32]; char eRec[1024]; }; #endif diff --git a/src/XrdOuc/XrdOucMsubs.cc b/src/XrdOuc/XrdOucMsubs.cc index f53b36f7fa3..f74d0b7df30 100644 --- a/src/XrdOuc/XrdOucMsubs.cc +++ b/src/XrdOuc/XrdOucMsubs.cc @@ -240,6 +240,7 @@ char *XrdOucMsubs::getVal(XrdOucMsubsInfo &Info, int vNum) break; case vRID: if (Info.Rid) return (char *)Info.Rid; + [[gnu::fallthrough]]; case vTID: return (char *)Info.Tid; case vCGI: if (!(op = Info.Env->Env(n))) op = (char *)""; diff --git a/src/XrdOuc/XrdOucPup.cc b/src/XrdOuc/XrdOucPup.cc index 4897e77ae46..a1bf1d70e33 100644 --- a/src/XrdOuc/XrdOucPup.cc +++ b/src/XrdOuc/XrdOucPup.cc @@ -209,7 +209,7 @@ int XrdOucPup::Pack(struct iovec *iovP, struct iovec *iovE, XrdOucPupArgs *pup, case PT_Mark: *Base.B08 = (char *)vP; if (pP->Dtype == PT_Mark) break; - + [[gnu::fallthrough]]; case PT_Skip: vP++; break; @@ -224,6 +224,7 @@ int XrdOucPup::Pack(struct iovec *iovP, struct iovec *iovE, XrdOucPupArgs *pup, case PT_EndFill: *Base.B16 = htons(static_cast(TotLen)); + [[gnu::fallthrough]]; case PT_End: return static_cast(vP-iovP); diff --git a/src/XrdSecpwd/XrdSecProtocolpwd.cc b/src/XrdSecpwd/XrdSecProtocolpwd.cc index 1d3932b96f7..089a9b6d4b1 100644 --- a/src/XrdSecpwd/XrdSecProtocolpwd.cc +++ b/src/XrdSecpwd/XrdSecProtocolpwd.cc @@ -1009,6 +1009,7 @@ XrdSecCredentials *XrdSecProtocolpwd::getCredentials(XrdSecParameters *parm, // We set some options in the option field of a pwdStatus_t structure if (hs->Tty || (AutoLogin > 0)) SessionSt.options = kOptsClntTty; + [[gnu::fallthrough]]; case kXPS_puk: // After auto-reg request, server puk have been saved in ParseClientInput: @@ -1037,6 +1038,7 @@ XrdSecCredentials *XrdSecProtocolpwd::getCredentials(XrdSecParameters *parm, break; } } + [[gnu::fallthrough]]; case kXPS_signedrtag: // (after kXRC_verifysrv) // @@ -1378,6 +1380,7 @@ int XrdSecProtocolpwd::Authenticate(XrdSecCredentials *cred, } // Creds, if any, should be checked, unles we allow auto-registration savecreds = (entst != kPFE_allowed) ? 0 : 1; + [[gnu::fallthrough]]; case kXPC_creds: // diff --git a/src/XrdSecpwd/XrdSecpwdSrvAdmin.cc b/src/XrdSecpwd/XrdSecpwdSrvAdmin.cc index 8b51a3da3b6..be3e63d1b9e 100644 --- a/src/XrdSecpwd/XrdSecpwdSrvAdmin.cc +++ b/src/XrdSecpwd/XrdSecpwdSrvAdmin.cc @@ -421,6 +421,7 @@ int main( int argc, char **argv ) // // Like 'add', forcing write Force = 1; + [[gnu::fallthrough]]; case kA_add: // // Add / Update entry @@ -970,6 +971,7 @@ int main( int argc, char **argv ) // // Trim the file ff.Trim(); + [[gnu::fallthrough]]; case kA_browse: default: diff --git a/src/XrdSecsss/XrdSecProtocolsss.cc b/src/XrdSecsss/XrdSecProtocolsss.cc index ac35afb78f0..f1f8d31907b 100644 --- a/src/XrdSecsss/XrdSecProtocolsss.cc +++ b/src/XrdSecsss/XrdSecProtocolsss.cc @@ -392,7 +392,7 @@ char *XrdSecProtocolsss::Load_Client(XrdOucErrInfo *erp, const char *parms) idMap = XrdSecsssID::getObj(aType, &staticID, staticIDsz); switch(aType) {case XrdSecsssID::idDynamic: isMutual = 1; break; - case XrdSecsssID::idStaticM: isMutual = 1; + case XrdSecsssID::idStaticM: isMutual = 1; [[gnu::fallthrough]]; case XrdSecsssID::idStatic: default: idMap = 0; break; } diff --git a/src/XrdSut/XrdSutPFile.cc b/src/XrdSut/XrdSutPFile.cc index a3968e0ecb0..d488205b0d5 100644 --- a/src/XrdSut/XrdSutPFile.cc +++ b/src/XrdSut/XrdSutPFile.cc @@ -377,6 +377,7 @@ kXR_int32 XrdSutPFile::Open(kXR_int32 opt, bool *wasopen, // // Forcing truncation mode |= O_TRUNC ; + [[gnu::fallthrough]]; case 1: // // Read / Write diff --git a/src/XrdSys/XrdSysError.cc b/src/XrdSys/XrdSysError.cc index 14c2d147198..e877a5456a3 100644 --- a/src/XrdSys/XrdSysError.cc +++ b/src/XrdSys/XrdSysError.cc @@ -97,7 +97,7 @@ int XrdSysError::Emsg(const char *esfx, int ecode, const char *txt1, { struct iovec iov[16]; int iovpnt = 0; - char ebuff[16], etbuff[80], *etxt = 0; + char ebuff[30], etbuff[80], *etxt = 0; if (!(etxt = ec2text(ecode))) {snprintf(ebuff, sizeof(ebuff), "reason unknown (%d)", ecode); diff --git a/src/XrdXml/tinyxmlparser.cpp b/src/XrdXml/tinyxmlparser.cpp index 81b7eae96be..c7be242d8e1 100644 --- a/src/XrdXml/tinyxmlparser.cpp +++ b/src/XrdXml/tinyxmlparser.cpp @@ -111,14 +111,17 @@ void TiXmlBase::ConvertUTF32ToUTF8( unsigned long input, char* output, int* leng --output; *output = (char)((input | BYTE_MARK) & BYTE_MASK); input >>= 6; + [[gnu::fallthrough]]; case 3: --output; *output = (char)((input | BYTE_MARK) & BYTE_MASK); input >>= 6; + [[gnu::fallthrough]]; case 2: --output; *output = (char)((input | BYTE_MARK) & BYTE_MASK); input >>= 6; + [[gnu::fallthrough]]; case 1: --output; *output = (char)(input | FIRST_BYTE_MARK[*length]); diff --git a/src/XrdXrootd/XrdXrootdConfig.cc b/src/XrdXrootd/XrdXrootdConfig.cc index 0305c0a2c72..055fa5ff945 100644 --- a/src/XrdXrootd/XrdXrootdConfig.cc +++ b/src/XrdXrootd/XrdXrootdConfig.cc @@ -188,10 +188,10 @@ int XrdXrootdProtocol::Configure(char *parms, XrdProtocol_Config *pi) while ((c=getopt(pi->argc,pi->argv,"mrst")) && ((unsigned char)c != 0xff)) { switch(c) { - case 'r': deper = 1; + case 'r': deper = 1; [[gnu::fallthrough]]; case 'm': XrdOucEnv::Export("XRDREDIRECT", "R"); break; - case 't': deper = 1; + case 't': deper = 1; [[gnu::fallthrough]]; case 's': XrdOucEnv::Export("XRDRETARGET", "1"); break; case 'y': XrdOucEnv::Export("XRDREDPROXY", "1");