diff options
author | Marko Mäkelä <marko.makela@mariadb.com> | 2022-07-27 17:17:24 +0300 |
---|---|---|
committer | Marko Mäkelä <marko.makela@mariadb.com> | 2022-07-27 17:17:24 +0300 |
commit | 098c0f2634a35e24e9eb0f06d3fba69d0d097657 (patch) | |
tree | 8e6b460d1c8812d29444bf1bd7449e5871105215 /storage/connect/filamfix.cpp | |
parent | 5bf4dee36943cb4cc95d10863d469192de854800 (diff) | |
parent | e5c4f4e590d7782ef938b436f84ae11b68e0af08 (diff) | |
download | mariadb-git-098c0f2634a35e24e9eb0f06d3fba69d0d097657.tar.gz |
Merge 10.4 into 10.5
Diffstat (limited to 'storage/connect/filamfix.cpp')
-rw-r--r-- | storage/connect/filamfix.cpp | 67 |
1 files changed, 33 insertions, 34 deletions
diff --git a/storage/connect/filamfix.cpp b/storage/connect/filamfix.cpp index 46f3ea01129..117a4e8dda6 100644 --- a/storage/connect/filamfix.cpp +++ b/storage/connect/filamfix.cpp @@ -236,10 +236,10 @@ int FIXFAM::WriteModifiedBlock(PGLOBAL g) // Fpos is last position, Headlen is DBF file header length else if (!moved && fseek(Stream, Headlen + Fpos * Lrecl, SEEK_SET)) { - sprintf(g->Message, MSG(FSETPOS_ERROR), 0); + snprintf(g->Message, sizeof(g->Message), MSG(FSETPOS_ERROR), 0); rc = RC_FX; } else if (fwrite(To_Buf, Lrecl, Rbuf, T_Stream) != (size_t)Rbuf) { - sprintf(g->Message, MSG(FWRITE_ERROR), strerror(errno)); + snprintf(g->Message, sizeof(g->Message), MSG(FWRITE_ERROR), strerror(errno)); rc = RC_FX; } else Spos = Fpos + Nrec; // + Rbuf ??? @@ -316,7 +316,7 @@ int FIXFAM::ReadBuffer(PGLOBAL g) if (CurBlk != OldBlk + 1) // Note: Headlen is for DBF tables if (fseek(Stream, Headlen + Fpos * Lrecl, SEEK_SET)) { - sprintf(g->Message, MSG(FSETPOS_ERROR), Fpos); + snprintf(g->Message, sizeof(g->Message), MSG(FSETPOS_ERROR), Fpos); return RC_FX; } // endif fseek @@ -337,9 +337,9 @@ int FIXFAM::ReadBuffer(PGLOBAL g) rc = RC_EF; } else { #if defined(_WIN32) - sprintf(g->Message, MSG(READ_ERROR), To_File, _strerror(NULL)); + snprintf(g->Message, sizeof(g->Message), MSG(READ_ERROR), To_File, _strerror(NULL)); #else - sprintf(g->Message, MSG(READ_ERROR), To_File, strerror(errno)); + snprintf(g->Message, sizeof(g->Message), MSG(READ_ERROR), To_File, strerror(errno)); #endif if (trace(1)) @@ -377,7 +377,7 @@ int FIXFAM::WriteBuffer(PGLOBAL g) // Now start the writing process. if (fwrite(To_Buf, Lrecl, Rbuf, Stream) != (size_t)Rbuf) { - sprintf(g->Message, MSG(FWRITE_ERROR), strerror(errno)); + snprintf(g->Message, sizeof(g->Message), MSG(FWRITE_ERROR), strerror(errno)); Closing = true; // To tell CloseDB about a Write error return RC_FX; } // endif size @@ -482,7 +482,7 @@ int FIXFAM::DeleteRecords(PGLOBAL g, int irc) if (moved) { if (fseek(Stream, Spos * Lrecl, SEEK_SET)) { - sprintf(g->Message, MSG(FSETPOS_ERROR), 0); + snprintf(g->Message, sizeof(g->Message), MSG(FSETPOS_ERROR), 0); return RC_FX; } // endif fseek @@ -524,13 +524,13 @@ int FIXFAM::DeleteRecords(PGLOBAL g, int irc) /*****************************************************************/ #if defined(UNIX) if (ftruncate(h, (off_t)(Tpos * Lrecl))) { - sprintf(g->Message, MSG(TRUNCATE_ERROR), strerror(errno)); + snprintf(g->Message, sizeof(g->Message), MSG(TRUNCATE_ERROR), strerror(errno)); close(h); return RC_FX; } // endif #else if (chsize(h, Tpos * Lrecl)) { - sprintf(g->Message, MSG(CHSIZE_ERROR), strerror(errno)); + snprintf(g->Message, sizeof(g->Message), MSG(CHSIZE_ERROR), strerror(errno)); close(h); return RC_FX; } // endif @@ -563,7 +563,7 @@ bool FIXFAM::MoveIntermediateLines(PGLOBAL g, bool *b) /*******************************************************************/ if (!UseTemp || !*b) if (fseek(Stream, Headlen + Spos * Lrecl, SEEK_SET)) { - sprintf(g->Message, MSG(READ_SEEK_ERROR), strerror(errno)); + snprintf(g->Message, sizeof(g->Message), MSG(READ_SEEK_ERROR), strerror(errno)); return true; } // endif @@ -574,18 +574,18 @@ bool FIXFAM::MoveIntermediateLines(PGLOBAL g, bool *b) htrc("after read req=%d len=%d\n", req, len); if (len != req) { - sprintf(g->Message, MSG(DEL_READ_ERROR), (int) req, (int) len); + snprintf(g->Message, sizeof(g->Message), MSG(DEL_READ_ERROR), (int) req, (int) len); return true; } // endif len if (!UseTemp) // Delete mode, cannot be a DBF file if (fseek(T_Stream, Tpos * Lrecl, SEEK_SET)) { - sprintf(g->Message, MSG(WRITE_SEEK_ERR), strerror(errno)); + snprintf(g->Message, sizeof(g->Message), MSG(WRITE_SEEK_ERR), strerror(errno)); return true; } // endif if ((len = fwrite(DelBuf, Lrecl, req, T_Stream)) != req) { - sprintf(g->Message, MSG(DEL_WRITE_ERROR), strerror(errno)); + snprintf(g->Message, sizeof(g->Message), MSG(DEL_WRITE_ERROR), strerror(errno)); return true; } // endif @@ -689,13 +689,12 @@ bool BGXFAM::BigSeek(PGLOBAL g, HANDLE h, BIGINT pos, int org) FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, NULL, drc, 0, (LPTSTR)buf, sizeof(buf), NULL); - sprintf(g->Message, MSG(SFP_ERROR), buf); + snprintf(g->Message, sizeof(g->Message), MSG(SFP_ERROR), buf); return true; } // endif #else // !_WIN32 if (lseek64(h, pos, org) < 0) { -// sprintf(g->Message, MSG(ERROR_IN_LSK), errno); - sprintf(g->Message, "lseek64: %s", strerror(errno)); + snprintf(g->Message, sizeof(g->Message), "lseek64: %s", strerror(errno)); printf("%s\n", g->Message); return true; } // endif @@ -726,7 +725,7 @@ int BGXFAM::BigRead(PGLOBAL g __attribute__((unused)), FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, NULL, drc, 0, (LPTSTR)buf, sizeof(buf), NULL); - sprintf(g->Message, MSG(READ_ERROR), To_File, buf); + snprintf(g->Message, sizeof(g->Message), MSG(READ_ERROR), To_File, buf); if (trace(2)) htrc("BIGREAD: %s\n", g->Message); @@ -771,7 +770,7 @@ bool BGXFAM::BigWrite(PGLOBAL g, HANDLE h, void *inbuf, int req) (LPTSTR)buf, sizeof(buf), NULL); } // endelse brc - sprintf(g->Message, MSG(WRITE_STRERROR), fn, buf); + snprintf(g->Message, sizeof(g->Message), MSG(WRITE_STRERROR), fn, buf); if (trace(2)) htrc("BIGWRITE: nbw=%d len=%d errno=%d %s\n", @@ -786,7 +785,7 @@ bool BGXFAM::BigWrite(PGLOBAL g, HANDLE h, void *inbuf, int req) if (nbw != (ssize_t)len) { const char *fn = (h == Hfile) ? To_File : "Tempfile"; - sprintf(g->Message, MSG(WRITE_STRERROR), fn, strerror(errno)); + snprintf(g->Message, sizeof(g->Message), MSG(WRITE_STRERROR), fn, strerror(errno)); if (trace(2)) htrc("BIGWRITE: nbw=%d len=%d errno=%d %s\n", @@ -820,7 +819,7 @@ bool BGXFAM::OpenTableFile(PGLOBAL g) PDBUSER dbuserp = PlgGetUser(g); if ((To_Fb && To_Fb->Count) || Hfile != INVALID_HANDLE_VALUE) { - sprintf(g->Message, MSG(FILE_OPEN_YET), To_File); + snprintf(g->Message, sizeof(g->Message), MSG(FILE_OPEN_YET), To_File); return true; } // endif @@ -869,7 +868,7 @@ bool BGXFAM::OpenTableFile(PGLOBAL g) creation = OPEN_ALWAYS; break; default: - sprintf(g->Message, MSG(BAD_OPEN_MODE), mode); + snprintf(g->Message, sizeof(g->Message), MSG(BAD_OPEN_MODE), mode); return true; } // endswitch @@ -878,7 +877,7 @@ bool BGXFAM::OpenTableFile(PGLOBAL g) if (Hfile == INVALID_HANDLE_VALUE) { rc = GetLastError(); - sprintf(g->Message, MSG(OPEN_ERROR), rc, mode, filename); + snprintf(g->Message, sizeof(g->Message), MSG(OPEN_ERROR), rc, mode, filename); FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, NULL, rc, 0, (LPTSTR)filename, sizeof(filename), NULL); @@ -929,7 +928,7 @@ bool BGXFAM::OpenTableFile(PGLOBAL g) // tmode = S_IREAD | S_IWRITE; break; default: - sprintf(g->Message, MSG(BAD_OPEN_MODE), mode); + snprintf(g->Message, sizeof(g->Message), MSG(BAD_OPEN_MODE), mode); return true; } // endswitch @@ -999,7 +998,7 @@ int BGXFAM::Cardinality(PGLOBAL g) if (h == INVALID_HANDLE_VALUE) if ((rc = GetLastError()) != ERROR_FILE_NOT_FOUND) { - sprintf(g->Message, MSG(OPEN_ERROR), rc, 10, filename); + snprintf(g->Message, sizeof(g->Message), MSG(OPEN_ERROR), rc, 10, filename); FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, NULL, rc, 0, (LPTSTR)filename, sizeof(filename), NULL); @@ -1015,7 +1014,7 @@ int BGXFAM::Cardinality(PGLOBAL g) len.LowPart = GetFileSize(Hfile, (LPDWORD)&len.HighPart); if (len.LowPart == 0xFFFFFFFF && (rc = GetLastError()) != NO_ERROR) { - sprintf(g->Message, MSG(FILELEN_ERROR), "GetFileSize", filename); + snprintf(g->Message, sizeof(g->Message), MSG(FILELEN_ERROR), "GetFileSize", filename); return -2; } else fsize = len.QuadPart; @@ -1032,7 +1031,7 @@ int BGXFAM::Cardinality(PGLOBAL g) htrc(" errno=%d ENOENT=%d\n", errno, ENOENT); if (errno != ENOENT) { - sprintf(g->Message, MSG(OPEN_ERROR_IS), + snprintf(g->Message, sizeof(g->Message), MSG(OPEN_ERROR_IS), filename, strerror(errno)); return -1; } else @@ -1051,7 +1050,7 @@ int BGXFAM::Cardinality(PGLOBAL g) } // endif Hfile if (fsize < 0) { - sprintf(g->Message, MSG(FILELEN_ERROR), "lseek64", filename); + snprintf(g->Message, sizeof(g->Message), MSG(FILELEN_ERROR), "lseek64", filename); return -2; } // endif fsize @@ -1060,14 +1059,14 @@ int BGXFAM::Cardinality(PGLOBAL g) // Check the real size of the file if (Padded && Blksize) { if (fsize % (BIGINT)Blksize) { - sprintf(g->Message, MSG(NOT_FIXED_LEN), + snprintf(g->Message, sizeof(g->Message), MSG(NOT_FIXED_LEN), filename, (int)fsize, Lrecl); return -3; } else card = (int)(fsize / (BIGINT)Blksize) * Nrec; } else if (fsize % (BIGINT)Lrecl) { - sprintf(g->Message, MSG(NOT_FIXED_LEN), filename, (int)fsize, Lrecl); + snprintf(g->Message, sizeof(g->Message), MSG(NOT_FIXED_LEN), filename, (int)fsize, Lrecl); return -3; } else card = (int)(fsize / (BIGINT)Lrecl); // Fixed length file @@ -1353,12 +1352,12 @@ int BGXFAM::DeleteRecords(PGLOBAL g, int irc) if (!SetEndOfFile(Hfile)) { DWORD drc = GetLastError(); - sprintf(g->Message, MSG(SETEOF_ERROR), drc); + snprintf(g->Message, sizeof(g->Message), MSG(SETEOF_ERROR), drc); return RC_FX; } // endif error #else // !_WIN32 if (ftruncate64(Hfile, (BIGINT)(Tpos * Lrecl))) { - sprintf(g->Message, MSG(TRUNCATE_ERROR), strerror(errno)); + snprintf(g->Message, sizeof(g->Message), MSG(TRUNCATE_ERROR), strerror(errno)); return RC_FX; } // endif #endif // !_WIN32 @@ -1392,7 +1391,7 @@ bool BGXFAM::OpenTempFile(PGLOBAL g) if (Tfile == INVALID_HANDLE_VALUE) { DWORD rc = GetLastError(); - sprintf(g->Message, MSG(OPEN_ERROR), rc, MODE_INSERT, tempname); + snprintf(g->Message, sizeof(g->Message), MSG(OPEN_ERROR), rc, MODE_INSERT, tempname); FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, NULL, rc, 0, (LPTSTR)tempname, _MAX_PATH, NULL); @@ -1404,7 +1403,7 @@ bool BGXFAM::OpenTempFile(PGLOBAL g) if (Tfile == INVALID_HANDLE_VALUE) { int rc = errno; - sprintf(g->Message, MSG(OPEN_ERROR), rc, MODE_INSERT, tempname); + snprintf(g->Message, sizeof(g->Message), MSG(OPEN_ERROR), rc, MODE_INSERT, tempname); strcat(g->Message, strerror(errno)); return true; } //endif Tfile @@ -1442,7 +1441,7 @@ bool BGXFAM::MoveIntermediateLines(PGLOBAL g, bool *b) req = MY_MIN(n, Dbflen) * Lrecl; if ((nbr = BigRead(g, Hfile, DelBuf, req)) != req) { - sprintf(g->Message, MSG(DEL_READ_ERROR), req, nbr); + snprintf(g->Message, sizeof(g->Message), MSG(DEL_READ_ERROR), req, nbr); return true; } // endif nbr |