diff --git a/src/XrdFrm/XrdFrmMonitor.cc b/src/XrdFrm/XrdFrmMonitor.cc index a453617a6fb..5abe5ff3113 100644 --- a/src/XrdFrm/XrdFrmMonitor.cc +++ b/src/XrdFrm/XrdFrmMonitor.cc @@ -149,6 +149,12 @@ int XrdFrmMonitor::Init(const char *iHost, const char *iProg, const char *iName) // if (!isEnabled) return 1; +// Ignore array bounds warning from gcc 12 triggered because the allocated +// memory for the XrdXrootdMonMap is smaller than sizeof(XrdXrootdMonMap) +#if defined(__GNUC__) && __GNUC__ >= 12 +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Warray-bounds" +#endif // Create identification record // idLen = strlen(iBuff) + sizeof(XrdXrootdMonHeader) + sizeof(kXR_int32); @@ -158,6 +164,9 @@ int XrdFrmMonitor::Init(const char *iHost, const char *iProg, const char *iName) mP->hdr.pseq = 0; mP->dictid = 0; strcpy(mP->info, iBuff); +#if defined(__GNUC__) && __GNUC__ >= 12 +#pragma GCC diagnostic pop +#endif // Setup the primary destination // diff --git a/src/XrdXrootd/XrdXrootdMonitor.cc b/src/XrdXrootd/XrdXrootdMonitor.cc index 2926bae75ea..bb0f0a24284 100644 --- a/src/XrdXrootd/XrdXrootdMonitor.cc +++ b/src/XrdXrootd/XrdXrootdMonitor.cc @@ -625,6 +625,12 @@ void XrdXrootdMonitor::Init(XrdScheduler *sp, XrdSysError *errp, kySIDSZ = strlen(kySID); monHost = strdup(iHost); +// Ignore array bounds warning from gcc 12 triggered because the allocated +// memory for the XrdXrootdMonMap is smaller than sizeof(XrdXrootdMonMap) +#if defined(__GNUC__) && __GNUC__ >= 12 +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Warray-bounds" +#endif // Create identification record // idLen = strlen(iBuff) + sizeof(XrdXrootdMonHeader) + sizeof(kXR_int32); @@ -634,6 +640,9 @@ void XrdXrootdMonitor::Init(XrdScheduler *sp, XrdSysError *errp, mP->hdr.pseq = 0; mP->dictid = 0; strcpy(mP->info, iBuff); +#if defined(__GNUC__) && __GNUC__ >= 12 +#pragma GCC diagnostic pop +#endif // Generate a CGI version of all the variations //