remove use of banned api

pull/4311/head
Nils Dijk 2020-11-05 17:22:31 +01:00
parent b6d4a1bbe2
commit 3e5df81e89
No known key found for this signature in database
GPG Key ID: CA1177EF9434F241
4 changed files with 24 additions and 11 deletions

View File

@ -78,6 +78,7 @@
#include "columnar/cstore.h"
#include "columnar/cstore_fdw.h"
#include "columnar/cstore_version_compat.h"
#include "distributed/citus_safe_lib.h"
/* table containing information about how to partition distributed tables */
#define CITUS_EXTENSION_NAME "citus"
@ -474,8 +475,8 @@ CStoreProcessCopyCommand(CopyStmt *copyStatement, const char *queryString,
if (completionTag != NULL)
{
snprintf(completionTag, COMPLETION_TAG_BUFSIZE, "COPY " UINT64_FORMAT,
processedCount);
SafeSnprintf(completionTag, COMPLETION_TAG_BUFSIZE, "COPY " UINT64_FORMAT,
processedCount);
}
}

View File

@ -10,6 +10,8 @@
#include "postgres.h"
#include "safe_lib.h"
#include "columnar/cstore.h"
#include "columnar/cstore_version_compat.h"
@ -885,12 +887,14 @@ DatumToBytea(Datum value, Form_pg_attribute attrForm)
}
else
{
memcpy(VARDATA(result), DatumGetPointer(value), attrForm->attlen);
memcpy_s(VARDATA(result), datumLength + VARHDRSZ,
DatumGetPointer(value), attrForm->attlen);
}
}
else
{
memcpy(VARDATA(result), DatumGetPointer(value), datumLength);
memcpy_s(VARDATA(result), datumLength + VARHDRSZ,
DatumGetPointer(value), datumLength);
}
return result;
@ -909,7 +913,8 @@ ByteaToDatum(bytea *bytes, Form_pg_attribute attrForm)
* after the byteaDatum is freed.
*/
char *binaryDataCopy = palloc0(VARSIZE_ANY_EXHDR(bytes));
memcpy(binaryDataCopy, VARDATA_ANY(bytes), VARSIZE_ANY_EXHDR(bytes));
memcpy_s(binaryDataCopy, VARSIZE_ANY_EXHDR(bytes),
VARDATA_ANY(bytes), VARSIZE_ANY_EXHDR(bytes));
return fetch_att(binaryDataCopy, attrForm->attbyval, attrForm->attlen);
}

View File

@ -16,6 +16,8 @@
#include "postgres.h"
#include "safe_lib.h"
#include "access/nbtree.h"
#include "catalog/pg_am.h"
#include "commands/defrem.h"
@ -1025,7 +1027,7 @@ ReadFromSmgr(Relation rel, uint64 offset, uint32 size)
PageHeader phdr = (PageHeader) page;
uint32 to_read = Min(size - read, phdr->pd_upper - addr.offset);
memcpy(resultBuffer->data + read, page + addr.offset, to_read);
memcpy_s(resultBuffer->data + read, size - read, page + addr.offset, to_read);
ReleaseBuffer(buffer);
read += to_read;
}

View File

@ -16,6 +16,8 @@
#include "postgres.h"
#include "safe_lib.h"
#include "access/nbtree.h"
#include "catalog/pg_am.h"
#include "miscadmin.h"
@ -354,7 +356,7 @@ WriteToSmgr(Relation rel, uint64 logicalOffset, char *data, uint32 dataLength)
START_CRIT_SECTION();
uint64 to_write = Min(phdr->pd_upper - phdr->pd_lower, remaining);
memcpy(page + phdr->pd_lower, data, to_write);
memcpy_s(page + phdr->pd_lower, phdr->pd_upper - phdr->pd_lower, data, to_write);
phdr->pd_lower += to_write;
MarkBufferDirty(buffer);
@ -561,13 +563,15 @@ SerializeSingleDatum(StringInfo datumBuffer, Datum datum, bool datumTypeByValue,
}
else
{
memcpy(currentDatumDataPointer, DatumGetPointer(datum), datumTypeLength);
memcpy_s(currentDatumDataPointer, datumBuffer->maxlen - datumBuffer->len,
DatumGetPointer(datum), datumTypeLength);
}
}
else
{
Assert(!datumTypeByValue);
memcpy(currentDatumDataPointer, DatumGetPointer(datum), datumLength);
memcpy_s(currentDatumDataPointer, datumBuffer->maxlen - datumBuffer->len,
DatumGetPointer(datum), datumLength);
}
datumBuffer->len += datumLengthAligned;
@ -714,7 +718,7 @@ DatumCopy(Datum datum, bool datumTypeByValue, int datumTypeLength)
{
uint32 datumLength = att_addlength_datum(0, datumTypeLength, datum);
char *datumData = palloc0(datumLength);
memcpy(datumData, DatumGetPointer(datum), datumLength);
memcpy_s(datumData, datumLength, DatumGetPointer(datum), datumLength);
datumCopy = PointerGetDatum(datumData);
}
@ -737,7 +741,8 @@ CopyStringInfo(StringInfo sourceString)
targetString->data = palloc0(sourceString->len);
targetString->len = sourceString->len;
targetString->maxlen = sourceString->len;
memcpy(targetString->data, sourceString->data, sourceString->len);
memcpy_s(targetString->data, sourceString->len,
sourceString->data, sourceString->len);
}
return targetString;