@@ -424,13 +424,13 @@ static void append_warning(parser_t *self, const char *msg) {
424424
425425 if (self -> warn_msg == NULL ) {
426426 self -> warn_msg = (char * )malloc (length + 1 );
427- strncpy (self -> warn_msg , msg , strlen ( msg ) + 1 );
427+ snprintf (self -> warn_msg , length + 1 , "%s" , msg );
428428 } else {
429429 ex_length = strlen (self -> warn_msg );
430430 newptr = safe_realloc (self -> warn_msg , ex_length + length + 1 );
431431 if (newptr != NULL ) {
432432 self -> warn_msg = (char * )newptr ;
433- strncpy (self -> warn_msg + ex_length , msg , strlen ( msg ) + 1 );
433+ snprintf (self -> warn_msg + ex_length , length + 1 , "%s" , msg );
434434 }
435435 }
436436}
@@ -1433,13 +1433,14 @@ PANDAS_INLINE void uppercase(char *p) {
14331433int to_boolean (const char * item , uint8_t * val ) {
14341434 char * tmp ;
14351435 int i , status = 0 ;
1436- int bufsize = sizeof (char ) * (strlen (item ) + 1 );
1436+ size_t length0 = (strlen (item ) + 1 );
1437+ int bufsize = length0 ;
14371438
14381439 static const char * tstrs [1 ] = {"TRUE" };
14391440 static const char * fstrs [1 ] = {"FALSE" };
14401441
14411442 tmp = malloc (bufsize );
1442- strncpy (tmp , item , bufsize );
1443+ snprintf (tmp , length0 , "%s" , item );
14431444 uppercase (tmp );
14441445
14451446 for (i = 0 ; i < 1 ; ++ i ) {
@@ -1815,7 +1816,7 @@ double round_trip(const char *p, char **q, char decimal, char sci, char tsep,
18151816 double r = PyOS_string_to_double (p , q , 0 );
18161817 if (maybe_int != NULL ) * maybe_int = 0 ;
18171818 if (PyErr_Occurred () != NULL ) * error = -1 ;
1818- else if (r == Py_HUGE_VAL ) * error = Py_HUGE_VAL ;
1819+ else if (r == Py_HUGE_VAL ) * error = ( int ) Py_HUGE_VAL ;
18191820 PyErr_Clear ();
18201821 return r ;
18211822}
0 commit comments