File 1082-odbc-Fix-compiler-warnings.patch of Package erlang

From 8c1c3341ad8d8348df70bea2fe48354b7aa86de6 Mon Sep 17 00:00:00 2001
From: Lukas Larsson <lukas@erlang.org>
Date: Tue, 3 Nov 2020 11:04:26 +0100
Subject: [PATCH 08/11] odbc: Fix compiler warnings

---
 lib/odbc/c_src/odbcserver.c | 83 ++++++++++++++++++++++++-------------
 1 file changed, 54 insertions(+), 29 deletions(-)

diff --git a/lib/odbc/c_src/odbcserver.c b/lib/odbc/c_src/odbcserver.c
index ee5dc9cd0a..a6ea54150a 100644
--- a/lib/odbc/c_src/odbcserver.c
+++ b/lib/odbc/c_src/odbcserver.c
@@ -178,7 +178,7 @@ static void encode_column_dyn(db_column column, int column_nr,
 			      db_state *state);
 static void encode_data_type(SQLSMALLINT sql_type, SQLINTEGER size,
 			     SQLSMALLINT decimal_digits, db_state *state);
-static Boolean decode_params(db_state *state, byte *buffer, int *index, param_array **params,
+static Boolean decode_params(db_state *state, char *buffer, int *index, param_array **params,
 			     int i, int j, int num_param_values);
 
 /*------------- Erlang port communication functions ----------------------*/
@@ -222,7 +222,7 @@ static SQLLEN* alloc_strlen_indptr(int n, int val);
 
 static void init_driver(int erl_auto_commit_mode, int erl_trace_driver,
 			   db_state *state);
-static void init_param_column(param_array *params, byte *buffer, int *index,
+static void init_param_column(param_array *params, char *buffer, int *index,
 			      int num_param_values, db_state* state);
 
 static void init_param_statement(int cols,
@@ -235,7 +235,7 @@ static void map_dec_num_2_c_column(col_type *type, int precision,
 static db_result_msg map_sql_2_c_column(db_column* column, db_state *state);
 
 
-static param_array * bind_parameter_arrays(byte *buffer, int *index,
+static param_array * bind_parameter_arrays(char *buffer, int *index,
 					   int cols,
 					   int num_param_values,
 					   db_state *state);
@@ -278,7 +278,7 @@ int main(void)
     
     msg = receive_erlang_port_msg();
 
-    temp = strtok(msg, ";");
+    temp = strtok((char*)msg, ";");
     if (temp == NULL)
 	DO_EXIT(EXIT_STDIN_BODY);
     length = strlen(temp);
@@ -509,7 +509,9 @@ static db_result_msg db_connect(byte *args, db_state *state)
 	diagnos = get_diagnos(SQL_HANDLE_DBC, connection_handle(state), extended_errors(state));
 	strcat((char *)diagnos.error_msg,
 	       " Connection to database failed.");
-	msg = encode_error_message(diagnos.error_msg, extended_error(state, diagnos.sqlState), diagnos.nativeError );
+	msg = encode_error_message((char *)diagnos.error_msg,
+                                   extended_error(state, diagnos.sqlState),
+                                   diagnos.nativeError );
     
 	if(!sql_success(SQLFreeHandle(SQL_HANDLE_DBC,
 				      connection_handle(state))))
@@ -544,7 +546,9 @@ static db_result_msg db_connect(byte *args, db_state *state)
 	diagnos = get_diagnos(SQL_HANDLE_DBC, connection_handle(state), extended_errors(state));
 	strcat((char *)diagnos.error_msg, " Set autocommit mode failed.");
 
-	msg = encode_error_message(diagnos.error_msg, extended_error(state, diagnos.sqlState), diagnos.nativeError);
+	msg = encode_error_message((char*)diagnos.error_msg,
+                                   extended_error(state, diagnos.sqlState),
+                                   diagnos.nativeError);
 
 	if(!sql_success(SQLFreeHandle(SQL_HANDLE_DBC,
 				      connection_handle(state))))
@@ -576,7 +580,9 @@ static db_result_msg db_close_connection(db_state *state)
                        
     if (!sql_success(result)) {
 	diagnos = get_diagnos(SQL_HANDLE_DBC, connection_handle(state), extended_errors(state));
-	return encode_error_message(diagnos.error_msg, extended_error(state, diagnos.sqlState), diagnos.nativeError);
+	return encode_error_message((char *)diagnos.error_msg,
+                                    extended_error(state, diagnos.sqlState),
+                                    diagnos.nativeError);
     }
 
     if(!sql_success(SQLFreeHandle(SQL_HANDLE_DBC,
@@ -603,7 +609,9 @@ static db_result_msg db_end_tran(byte compleationtype, db_state *state)
 
     if (!sql_success(result)) {
 	diagnos = get_diagnos(SQL_HANDLE_DBC, connection_handle(state), extended_errors(state));
-	return encode_error_message(diagnos.error_msg, extended_error(state, diagnos.sqlState), diagnos.nativeError);
+	return encode_error_message((char *)diagnos.error_msg,
+                                    extended_error(state, diagnos.sqlState),
+                                    diagnos.nativeError);
     } else {
 	return encode_atom_message("ok");
     }
@@ -645,7 +653,7 @@ static db_result_msg db_query(byte *sql, db_state *state)
 		       it as we want a nice and clean Erlang API  */
 		    if((strcmp((char *)is_error, "error") == 0))
 		    { 
-			    msg = encode_error_message((char *)diagnos.error_msg, extended_error(state, diagnos.sqlState), diagnos.nativeError);
+			    msg = encode_error_message((char *)diagnos.error_msg,extended_error(state, diagnos.sqlState), diagnos.nativeError);
  			    clean_state(state); 
 			    return msg;
 		    }  
@@ -686,7 +694,7 @@ static db_result_msg db_query(byte *sql, db_state *state)
 	ei_x_free(&(dynamic_buffer(state))); 
 	return msg;
     } else {
-	msg.buffer = dynamic_buffer(state).buff;
+	msg.buffer = (byte*)dynamic_buffer(state).buff;
 	msg.length = dynamic_buffer(state).index;
 	msg.dyn_alloc = TRUE;
 	return msg;
@@ -722,7 +730,9 @@ static db_result_msg db_select_count(byte *sql, db_state *state)
     if(!sql_success(SQLExecDirect(statement_handle(state), (SQLCHAR *)sql, SQL_NTS))) {
 	diagnos = get_diagnos(SQL_HANDLE_STMT, statement_handle(state), extended_errors(state));
 	clean_state(state);
-	return encode_error_message(diagnos.error_msg, extended_error(state, diagnos.sqlState), diagnos.nativeError);
+	return encode_error_message((char *)diagnos.error_msg,
+                                    extended_error(state, diagnos.sqlState),
+                                    diagnos.nativeError);
     }
   
     if(!sql_success(SQLNumResultCols(statement_handle(state),
@@ -810,7 +820,7 @@ static db_result_msg db_select(byte *args, db_state *state)
 	ei_x_free(&(dynamic_buffer(state))); 
 	return msg;
     } else {
-	msg.buffer = dynamic_buffer(state).buff;
+	msg.buffer = (byte*)dynamic_buffer(state).buff;
   	msg.length = dynamic_buffer(state).index; 
 	msg.dyn_alloc = TRUE;
 	return msg;
@@ -819,9 +829,10 @@ static db_result_msg db_select(byte *args, db_state *state)
 
 /* Description: Handles parameterized queries ex:
    INSERT INTO FOO VALUES(?, ?) */
-static db_result_msg db_param_query(byte *buffer, db_state *state)
+static db_result_msg db_param_query(byte *byte_buffer, db_state *state)
 {
-    byte *sql; 
+    char *sql;
+    char *buffer = (char *)byte_buffer;
     db_result_msg msg;
     SQLLEN num_param_values;
     int i, ver = 0,
@@ -847,7 +858,7 @@ static db_result_msg db_param_query(byte *buffer, db_state *state)
 
     ei_get_type(buffer, &index, &erl_type, &size);
 
-    sql = (byte*)safe_malloc((sizeof(byte) * (size + 1)));
+    sql = safe_malloc((sizeof(byte) * (size + 1)));
     ei_decode_string(buffer, &index, sql); 
 
     ei_decode_long(buffer, &index, &long_num_param_values);
@@ -871,7 +882,9 @@ static db_result_msg db_param_query(byte *buffer, db_state *state)
 	   updates/deletes that affect no rows */
 	if(!sql_success(result) &&
 	   !(result == SQL_NO_DATA && !strcmp((char *)diagnos.sqlState, INFO))) {
-		msg = encode_error_message(diagnos.error_msg, extended_error(state, diagnos.sqlState), diagnos.nativeError);
+            msg = encode_error_message((char*)diagnos.error_msg,
+                                       extended_error(state, diagnos.sqlState),
+                                       diagnos.nativeError);
 	} else {
 	    for (i = 0; i < param_status.params_processed; i++) {
 		switch (param_status.param_status_array[i]) {
@@ -886,7 +899,9 @@ static db_result_msg db_param_query(byte *buffer, db_state *state)
 		default:
 		    diagnos =
 			get_diagnos(SQL_HANDLE_STMT, statement_handle(state), extended_errors(state));
-		    msg = encode_error_message(diagnos.error_msg, extended_error(state, diagnos.sqlState), diagnos.nativeError);
+		    msg = encode_error_message((char*)diagnos.error_msg,
+                                               extended_error(state, diagnos.sqlState),
+                                               diagnos.nativeError);
 		    i = param_status.params_processed;
 		    break;
 		}
@@ -899,7 +914,7 @@ static db_result_msg db_param_query(byte *buffer, db_state *state)
                     msg = encode_result(state);
                 }
 		if(msg.length == 0) {
-		    msg.buffer = dynamic_buffer(state).buff;
+		    msg.buffer = (byte *)dynamic_buffer(state).buff;
   		    msg.length = dynamic_buffer(state).index; 
 		    msg.dyn_alloc = TRUE;
 		} else { /* Error occurred */
@@ -956,7 +971,9 @@ static db_result_msg db_describe_table(byte *sql, db_state *state)
     
     if (!sql_success(SQLPrepare(statement_handle(state), (SQLCHAR *)sql, SQL_NTS))){
 	diagnos =  get_diagnos(SQL_HANDLE_STMT, statement_handle(state), extended_errors(state));
-	msg = encode_error_message(diagnos.error_msg, extended_error(state, diagnos.sqlState), diagnos.nativeError);
+	msg = encode_error_message((char *)diagnos.error_msg,
+                                   extended_error(state, diagnos.sqlState),
+                                   diagnos.nativeError);
 	clean_state(state);
 	return msg;
     }
@@ -964,7 +981,9 @@ static db_result_msg db_describe_table(byte *sql, db_state *state)
     if(!sql_success(SQLNumResultCols(statement_handle(state),
 				     &num_of_columns))) {
 	diagnos =  get_diagnos(SQL_HANDLE_STMT, statement_handle(state), extended_errors(state));
-	msg = encode_error_message(diagnos.error_msg, extended_error(state, diagnos.sqlState), diagnos.nativeError);
+	msg = encode_error_message((char *)diagnos.error_msg,
+                                   extended_error(state, diagnos.sqlState),
+                                   diagnos.nativeError);
 	clean_state(state);
 	return msg;
     }
@@ -992,7 +1011,7 @@ static db_result_msg db_describe_table(byte *sql, db_state *state)
     ei_x_encode_empty_list(&dynamic_buffer(state));
     
     clean_state(state);
-    msg.buffer = dynamic_buffer(state).buff;
+    msg.buffer = (byte *)dynamic_buffer(state).buff;
     msg.length = dynamic_buffer(state).index; 
     msg.dyn_alloc = TRUE;
     return msg;
@@ -1088,7 +1107,9 @@ static db_result_msg encode_result(db_state *state)
     if(!sql_success(SQLNumResultCols(statement_handle(state), 
   				     &num_of_columns))) { 
 	    diagnos =  get_diagnos(SQL_HANDLE_STMT, statement_handle(state), extended_errors(state));
-	    msg = encode_error_message(diagnos.error_msg, extended_error(state, diagnos.sqlState), diagnos.nativeError);
+	    msg = encode_error_message((char *)diagnos.error_msg,
+                                       extended_error(state, diagnos.sqlState),
+                                       diagnos.nativeError);
 	    clean_state(state);
 	    return msg;
     } 
@@ -1105,7 +1126,9 @@ static db_result_msg encode_result(db_state *state)
     
     if(!sql_success(SQLRowCount(statement_handle(state), &RowCountPtr))) { 
 	    diagnos =  get_diagnos(SQL_HANDLE_STMT, statement_handle(state), extended_errors(state));
-	    msg = encode_error_message(diagnos.error_msg, extended_error(state, diagnos.sqlState), diagnos.nativeError);
+	    msg = encode_error_message((char *)diagnos.error_msg,
+                                       extended_error(state, diagnos.sqlState),
+                                       diagnos.nativeError);
 	    clean_state(state);
 	    return msg;
     }
@@ -1652,7 +1675,7 @@ static void encode_data_type(SQLSMALLINT sql_type, SQLINTEGER size,
     }
 }
 
-static Boolean decode_params(db_state *state, byte *buffer, int *index, param_array **params,
+static Boolean decode_params(db_state *state, char *buffer, int *index, param_array **params,
 			     int i, int j, int num_param_values)
 {
     int erl_type, size;
@@ -1688,7 +1711,7 @@ static Boolean decode_params(db_state *state, byte *buffer, int *index, param_ar
 		    if(erl_type != ERL_STRING_EXT) {
 			    return FALSE;
 		    }
-		    ei_decode_string(buffer, index, &(param->values.string[param->offset]));
+		    ei_decode_string(buffer, index, (char*)&(param->values.string[param->offset]));
 		    param->offset += param->type.len;
 	    }
 	    break;
@@ -2197,7 +2220,7 @@ static void init_driver(int erl_auto_commit_mode, int erl_trace_driver,
 	    DO_EXIT(EXIT_CONNECTION);
 }
 
-static void init_param_column(param_array *params, byte *buffer, int *index,
+static void init_param_column(param_array *params, char *buffer, int *index,
 			      int num_param_values, db_state* state)
 {
     long user_type, precision, scale, length;
@@ -2509,7 +2532,7 @@ static db_result_msg map_sql_2_c_column(db_column* column, db_state *state)
     return msg;
 }
 
-static param_array * bind_parameter_arrays(byte *buffer, int *index,
+static param_array * bind_parameter_arrays(char *buffer, int *index,
 					   int cols, int num_param_values,
 					   db_state *state)
 {
@@ -2669,7 +2692,7 @@ static db_result_msg retrive_scrollable_cursor_support_info(db_state *state)
 	ei_x_encode_atom(&dynamic_buffer(state), "false");  
 	ei_x_encode_atom(&dynamic_buffer(state), "false");
     } 
-    msg.buffer = dynamic_buffer(state).buff;
+    msg.buffer = (byte *)dynamic_buffer(state).buff;
     msg.length = dynamic_buffer(state).index; 
     msg.dyn_alloc = TRUE;
     return msg;
@@ -2700,7 +2723,9 @@ static db_result_msg more_result_sets(db_state *state)
 	diagnos = get_diagnos(SQL_HANDLE_STMT, statement_handle(state), extended_errors(state));
 	strcat((char *)diagnos.error_msg,
 	       "Failed to create on of the result sets");
-	msg = encode_error_message(diagnos.error_msg, extended_error(state, diagnos.sqlState), diagnos.nativeError);
+	msg = encode_error_message((char*)diagnos.error_msg,
+                                   extended_error(state, diagnos.sqlState),
+                                   diagnos.nativeError);
 	return msg;
     }
 }
-- 
2.26.2

openSUSE Build Service is sponsored by