Description: Don't call exit() from libmdb.so
 Libraries should return an error code, not kill the caller.
 Thanks lintian.
Author: Jean-Michel Vourgère <jmv_deb@nirgal.com>
Last-Update: 2012-01-03
Applied-Upstream: 0.7, commit:c37e82c356eafd1814ec3d384844abf8896ec693

Index: mdbtools/src/libmdb/write.c
===================================================================
--- mdbtools.orig/src/libmdb/write.c
+++ mdbtools/src/libmdb/write.c
@@ -554,8 +554,8 @@
 	}
 	mdb_debug(MDB_DEBUG_WRITE, "writing page %d", pgnum);
 	if (!mdb_write_pg(mdb, pgnum)) {
-		fprintf(stderr, "write failed! exiting...\n");
-		exit(1);
+		fprintf(stderr, "write failed!\n");
+		return 0;
 	}
 
 	mdb_update_indexes(table, num_fields, fields, pgnum, rownum);
@@ -685,8 +685,14 @@
 	}
 	/* do it! */
 	mdb_replace_row(table, table->cur_row-1, row_buffer, new_row_size);
-	return 0;
+	return 0; /* FIXME */
 }
+
+/* WARNING the return code is opposite to convention used elsewhere:
+ * returns 0 on success
+ * returns 1 on failure
+ * This might change on next ABI break.
+ */
 int 
 mdb_replace_row(MdbTableDef *table, int row, void *new_row, int new_row_size)
 {
@@ -745,8 +751,8 @@
 	}
 	/* drum roll, please */
 	if (!mdb_write_pg(mdb, table->cur_phys_pg)) {
-		fprintf(stderr, "write failed! exiting...\n");
-		exit(1);
+		fprintf(stderr, "write failed!\n");
+		return 1;
 	}
 	return 0;
 }
