File mariadb-5.1.55-compilation-fix.patch of Package mariadb.import4864

PATCH-P0-HACK-SUSE: Fixing few compilation problems

Mostly minor things. Mostly just to make compiler happy as it can't determine
that everything is ok. But few things might actually worth reporting as they
could be handled better (mostly the write calls).

Maintainer: Michal Hrusecky <mhrusecky@suse.cz>

Index: client/readline.cc
===================================================================
--- client/readline.cc.orig
+++ client/readline.cc
@@ -45,7 +45,7 @@ LINE_BUFFER *batch_readline_init(ulong m
 char *batch_readline(LINE_BUFFER *line_buff, bool *truncated)
 {
   char *pos;
-  ulong out_length;
+  ulong out_length=0;
   DBUG_ASSERT(truncated != NULL);
 
   if (!(pos=intern_read_line(line_buff,&out_length, truncated)))
Index: storage/innodb_plugin/ut/ut0ut.c
===================================================================
--- storage/innodb_plugin/ut/ut0ut.c.orig
+++ storage/innodb_plugin/ut/ut0ut.c
@@ -553,7 +553,9 @@ ut_print_namel(
 				       trx ? trx->mysql_thd : NULL,
 				       table_id);
 
-	fwrite(buf, 1, bufend - buf, f);
+	if(fwrite(buf, 1, bufend - buf, f) != (size_t)max(0,(bufend - buf))) {
+		fprintf(stderr, "fwrite failed in ut_print_namel!!!\n");
+	}
 }
 
 /**********************************************************************//**
@@ -574,7 +576,8 @@ ut_copy_file(
 			? (size_t) len
 			: sizeof buf;
 		size_t	size = fread(buf, 1, maxs, src);
-		fwrite(buf, 1, size, dest);
+		if(fwrite(buf, size, 1, dest)<size)
+			break;
 		len -= (long) size;
 		if (size < maxs) {
 			break;
Index: storage/ndb/src/common/util/ndb_init.c
===================================================================
--- storage/ndb/src/common/util/ndb_init.c.orig
+++ storage/ndb/src/common/util/ndb_init.c
@@ -31,7 +31,7 @@ ndb_init()
 {
   if (my_init()) {
     const char* err = "my_init() failed - exit\n";
-    write(2, err, strlen(err));
+    fprintf(stderr, err, strlen(err));
     exit(1);
   }
   ndb_init_internal();
Index: sql/log.cc
===================================================================
--- sql/log.cc.orig
+++ sql/log.cc
@@ -1868,7 +1868,7 @@ static void setup_windows_event_source()
 
 static int find_uniq_filename(char *name)
 {
-  long                  number;
+  long                  number=0;
   uint                  i;
   char                  buff[FN_REFLEN];
   struct st_my_dir     *dir_info;
Index: sql/filesort.cc
===================================================================
--- sql/filesort.cc.orig
+++ sql/filesort.cc
@@ -440,16 +440,20 @@ static void dbug_print_record(TABLE *tab
     Field *field=  *pfield;
 
     if (field->is_null())
-      fwrite("NULL", sizeof(char), 4, DBUG_FILE);
+      if(fwrite("NULL", sizeof(char), 4, DBUG_FILE) != sizeof(char) * 4)
+      	break;
    
     if (field->type() == MYSQL_TYPE_BIT)
       (void) field->val_int_as_str(&tmp, 1);
     else
       field->val_str(&tmp);
 
-    fwrite(tmp.ptr(),sizeof(char),tmp.length(),DBUG_FILE);
+    if(fwrite(tmp.ptr(),sizeof(char),tmp.length(),DBUG_FILE) !=
+      sizeof(char) * tmp.length())
+        break;
     if (pfield[1])
-      fwrite(", ", sizeof(char), 2, DBUG_FILE);
+      if(fwrite(", ", sizeof(char), 2, DBUG_FILE) != sizeof(char) * 2)
+        break;
   }
   fprintf(DBUG_FILE, ")");
   if (print_rowid)
Index: sql/opt_range.cc
===================================================================
--- sql/opt_range.cc.orig
+++ sql/opt_range.cc
@@ -11368,7 +11368,8 @@ print_key(KEY_PART *key_part, const ucha
     {
       if (*key)
       {
-	fwrite("NULL",sizeof(char),4,DBUG_FILE);
+	if(fwrite("NULL",sizeof(char),4,DBUG_FILE)!=4*sizeof(char))
+	  break;
 	continue;
       }
       key++;					// Skip null byte
@@ -11379,7 +11380,8 @@ print_key(KEY_PART *key_part, const ucha
       (void) field->val_int_as_str(&tmp, 1);
     else
       field->val_str(&tmp);
-    fwrite(tmp.ptr(),sizeof(char),tmp.length(),DBUG_FILE);
+    if(fwrite(tmp.ptr(),sizeof(char),tmp.length(),DBUG_FILE)!=sizeof(char)*tmp.length())
+      break;
     if (key+store_length < key_end)
       fputc('/',DBUG_FILE);
   }
Index: sql/sql_table.cc
===================================================================
--- sql/sql_table.cc.orig
+++ sql/sql_table.cc
@@ -6992,7 +6992,7 @@ view_err:
     need_copy_table= ALTER_TABLE_DATA_CHANGED;
   else
   {
-    enum_alter_table_change_level need_copy_table_res;
+    enum_alter_table_change_level need_copy_table_res = ALTER_TABLE_DATA_CHANGED;
     /* Check how much the tables differ. */
     if (compare_tables(table, alter_info,
                        create_info, order_num,
Index: storage/xtradb/ut/ut0ut.c
===================================================================
--- storage/xtradb/ut/ut0ut.c.orig
+++ storage/xtradb/ut/ut0ut.c
@@ -553,7 +553,9 @@ ut_print_namel(
 				       trx ? trx->mysql_thd : NULL,
 				       table_id);
 
-	(void) fwrite(buf, 1, bufend - buf, f);
+	if(fwrite(buf, 1, bufend - buf, f) != (size_t)max(0,(bufend - buf))) {
+		fprintf(stderr, "fwrite failed in ut_print_namel!!!\n");
+	}
 }
 
 /**********************************************************************//**
@@ -574,7 +576,7 @@ ut_copy_file(
 			? (size_t) len
 			: sizeof buf;
 		size_t	size = fread(buf, 1, maxs, src);
-		(void) fwrite(buf, 1, size, dest);
+		size=fwrite(buf, 1, size, dest);
 		len -= (long) size;
 		if (size < maxs) {
 			break;
Index: storage/maria/ha_maria.cc
===================================================================
--- storage/maria/ha_maria.cc.orig
+++ storage/maria/ha_maria.cc
@@ -2792,7 +2792,7 @@ int ha_maria::create(const char *name, r
                      HA_CREATE_INFO *ha_create_info)
 {
   int error;
-  uint create_flags= 0, record_count, i;
+  uint create_flags= 0, record_count=0, i;
   char buff[FN_REFLEN];
   MARIA_KEYDEF *keydef;
   MARIA_COLUMNDEF *recinfo;
Index: storage/pbxt/src/discover_xt.cc
===================================================================
--- storage/pbxt/src/discover_xt.cc.orig
+++ storage/pbxt/src/discover_xt.cc
@@ -1337,8 +1337,8 @@ static bool mysql_create_table_no_lock(T
   char			path[FN_REFLEN];
   uint          path_length;
   const char	*alias;
-  uint			db_options, key_count;
-  KEY			*key_info_buffer;
+  uint			db_options, key_count=0;
+  KEY			*key_info_buffer=NULL;
   handler		*file;
   bool			error= TRUE;
   DBUG_ENTER("mysql_create_table_no_lock");
Index: storage/pbxt/src/table_xt.cc
===================================================================
--- storage/pbxt/src/table_xt.cc.orig
+++ storage/pbxt/src/table_xt.cc
@@ -726,7 +726,7 @@ xtPublic void xt_check_tables(XTThreadPt
 {
 	u_int					edx;
 	XTTableEntryPtr			te_ptr;
-	volatile XTTableHPtr	tab;
+	volatile XTTableHPtr	tab=NULL;
 	char					path[PATH_MAX];
 
 	enter_();
@@ -1132,7 +1132,7 @@ static int tab_new_handle(XTThreadPtr se
 	XTOpenFilePtr	of_rec, of_ind;
 	XTTableEntryPtr	te_ptr;
 	size_t			tab_format_offset;
-	size_t			tab_head_size;
+	size_t			tab_head_size=0;
 
 	enter_();
 
openSUSE Build Service is sponsored by