From 02f21a8c9b6b49aa31a14bbf48e759ad65ae1b3c Mon Sep 17 00:00:00 2001 From: Jeff Trawick Date: Mon, 7 Mar 2011 11:19:29 +0000 Subject: replace some strcpy() calls with apr_cpystrn() (no overflow currently) git-svn-id: https://svn.apache.org/repos/asf/apr/apr/trunk@1078744 13f79535-47bb-0310-9956-ffa450edef68 --- dbd/apr_dbd_odbc.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'dbd') diff --git a/dbd/apr_dbd_odbc.c b/dbd/apr_dbd_odbc.c index 67cbc9026..f7769fcb8 100644 --- a/dbd/apr_dbd_odbc.c +++ b/dbd/apr_dbd_odbc.c @@ -914,10 +914,12 @@ static void check_error(apr_dbd_t *dbc, const char *step, SQLRETURN rc, /* set info about last error in dbc - fast return for SQL_SUCCESS */ if (rc == SQL_SUCCESS) { char successMsg[] = "[dbd_odbc] SQL_SUCCESS "; + apr_size_t successMsgLen = sizeof successMsg - 1; dbc->lasterrorcode = SQL_SUCCESS; - strcpy(dbc->lastError, successMsg); - strcpy(dbc->lastError + sizeof(successMsg) - 1, step); + apr_cpystrn(dbc->lastError, successMsg, sizeof dbc->lastError); + apr_cpystrn(dbc->lastError + successMsgLen, step, + sizeof dbc->lastError - successMsgLen); return; } switch (rc) { @@ -974,7 +976,8 @@ static APR_INLINE int odbc_check_rollback(apr_dbd_t *handle) { if (handle->can_commit == APR_DBD_TRANSACTION_ROLLBACK) { handle->lasterrorcode = SQL_ERROR; - strcpy(handle->lastError, "[dbd_odbc] Rollback pending "); + apr_cpystrn(handle->lastError, "[dbd_odbc] Rollback pending ", + sizeof handle->lastError); return 1; } return 0; -- cgit v1.2.1