Change 11845 by jhi@alpha on 2001/09/03 15:11:27
Update to Storable 1.0.13.
Affected files ...
... //depot/perl/ext/Storable/ChangeLog#11 edit
... //depot/perl/ext/Storable/Storable.pm#16 edit
... //depot/perl/ext/Storable/Storable.xs#35 edit
Differences ...
==== //depot/perl/ext/Storable/ChangeLog#11 (text) ====
Index: perl/ext/Storable/ChangeLog
--- perl/ext/Storable/ChangeLog.~1~ Mon Sep 3 09:15:05 2001
+++ perl/ext/Storable/ChangeLog Mon Sep 3 09:15:05 2001
@@ -1,3 +1,12 @@
+Tue Aug 28 23:53:20 MEST 2001 Raphael Manfredi <[EMAIL PROTECTED]>
+
+. Description:
+
+ Fixed truncation race with lock_retrieve() in lock_store().
+ The file has to be truncated only once the exclusive lock is held.
+
+ Removed spurious debugging messages in .xs file.
+
Sun Jul 1 13:27:32 MEST 2001 Raphael Manfredi <[EMAIL PROTECTED]>
. Description:
==== //depot/perl/ext/Storable/Storable.pm#16 (text) ====
Index: perl/ext/Storable/Storable.pm
--- perl/ext/Storable/Storable.pm.~1~ Mon Sep 3 09:15:05 2001
+++ perl/ext/Storable/Storable.pm Mon Sep 3 09:15:05 2001
@@ -1,4 +1,4 @@
-;# $Id: Storable.pm,v 1.0.1.11 2001/07/01 11:22:14 ram Exp $
+;# $Id: Storable.pm,v 1.0.1.12 2001/08/28 21:51:51 ram Exp $
;#
;# Copyright (c) 1995-2000, Raphael Manfredi
;#
@@ -6,6 +6,9 @@
;# in the README file that comes with the distribution.
;#
;# $Log: Storable.pm,v $
+;# Revision 1.0.1.12 2001/08/28 21:51:51 ram
+;# patch13: fixed truncation race with lock_retrieve() in lock_store()
+;#
;# Revision 1.0.1.11 2001/07/01 11:22:14 ram
;# patch12: systematically use "=over 4" for POD linters
;# patch12: updated version number
@@ -63,7 +66,7 @@
use AutoLoader;
use vars qw($forgive_me $VERSION);
-$VERSION = '1.012';
+$VERSION = '1.013';
*AUTOLOAD = \&AutoLoader::AUTOLOAD; # Grrr...
#
@@ -172,9 +175,8 @@
logcroak "not a reference" unless ref($self);
logcroak "wrong argument number" unless @_ == 2; # No @foo in arglist
local *FILE;
- open(FILE, ">$file") || logcroak "can't create $file: $!";
- binmode FILE; # Archaic systems...
if ($use_locking) {
+ open(FILE, ">>$file") || logcroak "can't write into $file: $!";
unless (&CAN_FLOCK) {
logcarp "Storable::lock_store: fcntl/flock emulation broken on
$^O";
return undef;
@@ -183,7 +185,10 @@
logcroak "can't get exclusive lock on $file: $!";
truncate FILE, 0;
# Unlocking will happen when FILE is closed
+ } else {
+ open(FILE, ">$file") || logcroak "can't create $file: $!";
}
+ binmode FILE; # Archaic systems...
my $da = $@; # Don't mess if called from exception
handler
my $ret;
# Call C routine nstore or pstore, depending on network order
==== //depot/perl/ext/Storable/Storable.xs#35 (text) ====
Index: perl/ext/Storable/Storable.xs
--- perl/ext/Storable/Storable.xs.~1~ Mon Sep 3 09:15:05 2001
+++ perl/ext/Storable/Storable.xs Mon Sep 3 09:15:05 2001
@@ -3,7 +3,7 @@
*/
/*
- * $Id: Storable.xs,v 1.0.1.9 2001/07/01 11:25:02 ram Exp $
+ * $Id: Storable.xs,v 1.0.1.10 2001/08/28 21:52:14 ram Exp $
*
* Copyright (c) 1995-2000, Raphael Manfredi
*
@@ -11,6 +11,9 @@
* in the README file that comes with the distribution.
*
* $Log: Storable.xs,v $
+ * Revision 1.0.1.10 2001/08/28 21:52:14 ram
+ * patch13: removed spurious debugging messages
+ *
* Revision 1.0.1.9 2001/07/01 11:25:02 ram
* patch12: fixed memory corruption on croaks during thaw()
* patch12: made code compile cleanly with -Wall (Jarkko Hietaniemi)
@@ -1261,9 +1264,6 @@
cxt->prev = parent_cxt;
SET_STCXT(cxt);
- TRACEME(("kbuf has %d bytes at 0x%x", ksiz, kbuf));
- TRACEME(("mbuf has %d bytes at 0x%x", msiz, mbase));
-
ASSERT(!cxt->s_dirty, ("clean context"));
return cxt;
End of Patch.