From 32da38eb4ead3154303b43312c024b0e107b4ec2 Mon Sep 17 00:00:00 2001 From: unknown Date: Thu, 19 Apr 2007 13:41:12 -0400 Subject: Bug #25761 Table is partially created when disk is full, causing database corruption mysys/my_copy.c: my_copy now deletes any partially copied file if the copy fails to complete. --- mysys/my_copy.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'mysys/my_copy.c') diff --git a/mysys/my_copy.c b/mysys/my_copy.c index 6143700befc..ec642b4083c 100644 --- a/mysys/my_copy.c +++ b/mysys/my_copy.c @@ -111,6 +111,11 @@ int my_copy(const char *from, const char *to, myf MyFlags) err: if (from_file >= 0) VOID(my_close(from_file,MyFlags)); - if (to_file >= 0) VOID(my_close(to_file,MyFlags)); + if (to_file >= 0) + { + VOID(my_close(to_file, MyFlags)); + /* attempt to delete the to-file we've partially written */ + VOID(my_delete(to, MyFlags)); + } DBUG_RETURN(-1); } /* my_copy */ -- cgit v1.2.1