Commit Graph

37 Commits

Author SHA1 Message Date
Serhiy Storchaka 9bd44d6dab Issue #28847: dubmdbm no longer writes the index file in when it is not
changed and supports reading read-only files.
2016-12-02 07:58:42 +02:00
Serhiy Storchaka 1aa2c0f073 Issue #23865: close() methods in multiple modules now are idempotent and more
robust at shutdown. If needs to release multiple resources, they are released
even if errors are occured.
2015-04-10 13:24:10 +03:00
Serhiy Storchaka c769040100 Issue #22885: Fixed arbitrary code execution vulnerability in the dumbdbm
module.  Original patch by Claudiu Popa.
2015-02-16 00:29:52 +02:00
Serhiy Storchaka 33ad0968eb Issue #21729: Used the "with" statement in the dbm.dumb module to ensure
files closing.  Patch by Claudiu Popa.
2014-06-25 20:37:49 +03:00
Tim Peters f733abb783 Whitespace normalization. 2007-01-30 03:03:46 +00:00
Andrew M. Kuchling 9ef0ef5b72 [Bug #802128 continued] Modify mode depending on the process umask.
Is there really no other way to read the umask than to set it?

Hope this works on Windows...
2006-12-22 15:16:58 +00:00
Andrew M. Kuchling dc26758ffe [Bug #802128] Make the mode argument of dumbdbm actually work the way it's
described, and add a test for it.

2.5 bugfix candidate, maybe; arguably this patch changes the API of
dumbdbm and shouldn't be added in a point-release.
2006-12-22 15:04:45 +00:00
Andrew M. Kuchling ecdad8575e [Bug #1172763] dumbdbm uses eval() on lines, so it chokes if there's an extra \r on the end of a line; fixed by stripping off trailing whitespace. 2005-06-07 19:36:10 +00:00
Skip Montanaro 6d06815b56 Give dumbdbm a sync() method which Shelve can call. Should solve some
database corruption problems with Spambayes.
2003-07-14 12:15:15 +00:00
Tim Peters 7a6c733c3b Make close() identical to __del__() for a dumbdbm database. Make
closing idempotent (it used to raise a nuisance exception on the 2nd
close attempt).

Bugfix candidate?  Probably, but arguable.
2003-07-13 17:21:10 +00:00
Tim Peters 0320464583 Repaired typos in comments. 2003-07-13 02:37:05 +00:00
Tim Peters d7472ec13a Fixed critical shutdown race in _Database._commit.
Related to SF patch 723231 (which pointed out the problem, but didn't
fix it, just shut up the warning msg -- which was pointing out a dead-
serious bug!).

Bugfix candidate.
2003-07-13 02:22:03 +00:00
Tim Peters 1d8d729af8 More comments about why not closing a dumddbm properly can be a disaster. 2003-07-13 02:05:47 +00:00
Tim Peters 3898a70bcf _commit(): Modernization. 2003-07-12 20:23:09 +00:00
Tim Peters 7dfd5701b2 There's a persistent rumor on the spambayes mailing list that dumbdbm
databases are associated with corruption problems, so I studied this code
carefully and ran some brutal stress tests.  I didn't find any bugs,
although it's unclear whether this code *intends* that __setitem__ can
leave the directory file out of synch with the data file (so
if a dumbdbm isn't properly closed, and the value of an existing key
was ever replaced, corruption is almost certain, where "corruption"
means the directory file is out of synch with the data file).

Added many comments and generally modernized the code.  Examples of the
latter:  we have better ways of reading a whole file line-by-line now;
eval() now tolerates a trailing newline; the %r format code can be used
to avoid explicit repr/backtick calls; and the code often broke tuples
into their components when it was clearer and faster to just leave them
as tuples.
2003-07-12 20:11:25 +00:00
Tim Peters ef6573e529 __setitem__: Use integer division for computing # of blocks. 2003-07-11 04:09:55 +00:00
Raymond Hettinger 2dd1ed69b4 SF 662923: iterator for dbm keys
When shelve and the bsdbm where expanded to a full mapping interface,
this module was missed.
2003-06-28 07:08:39 +00:00
Neal Norwitz f421e81e41 Fix comment, mode really is used 2003-03-01 22:58:00 +00:00
Raymond Hettinger 793d4b4936 SF 563203. Replaced 'has_key()' with 'in'. 2002-06-01 14:25:41 +00:00
Raymond Hettinger aef22fb9cd Patch 560023 adding docstrings. 2.2 Candidate (after verifying modules were not updated after 2.2). 2002-05-29 16:18:42 +00:00
Tim Peters e4418609f7 Whitespace normalization. 2002-02-16 07:34:19 +00:00
Anthony Baxter ed9057083b forward-patch from release21-maint branch:
Make dumbdbm merely "dumb", rather than "terminally broken". Without this
  patch, it's almost impossible to use dumbdbm _without_ causing horrible
  datalossage. With this patch, dumbdbm passes my own horrible torture test,
  as well as the roundup test suite.

  dumbdbm really could do with a smidgin of a rewrite or two, but that's not
  suitable for the release21-maint branch.
2001-12-21 05:13:37 +00:00
Fred Drake 2c8373bc23 Honor the mode argument to dumbdbm.open(); there is not good reason not to,
especially since the documentation described it in detail.
This partially closes SF bug #490098.
2001-12-07 21:54:46 +00:00
Guido van Rossum e2ae77b8b8 SF patch #474590 -- RISC OS support 2001-10-24 20:42:55 +00:00
Guido van Rossum 54e54c6877 The first batch of changes recommended by the fixdiv tool. These are
mostly changes of / operators into //.  Once or twice I did more or
less than recommended.
2001-09-04 19:14:14 +00:00
Martin v. Löwis d0cd95ce7f Replace __import__ with import as. 2001-07-19 10:06:39 +00:00
Fred Drake a7cc69e02e Added support for .__contains__(), .__iter__(), .iterkeys(). 2001-05-03 04:55:47 +00:00
Guido van Rossum d74fb6b12a RISCOS changes by dschwertberger. 2001-03-02 06:43:49 +00:00
Skip Montanaro 78349072f7 removed __all__ from several modules 2001-02-18 03:30:53 +00:00
Skip Montanaro eccd02a40d more __all__ updates 2001-01-20 23:34:12 +00:00
Tim Peters 88869f9787 Whitespace normalization. 2001-01-14 23:36:06 +00:00
Guido van Rossum 5b7b764afb Apply rstrip() to the lines read from _dirfile in _update(), so that a
dumbdbm archive created on Windows can be read on Unix.
2000-12-11 20:33:52 +00:00
Andrew M. Kuchling a48dbde93b Patch from Joe Eaton <jeaton@hostway.net> (SF#100741) to fix following problem:
There is a silly bug in the fall-back dumbdbm.py database package in
  the Python 1.5.2 standard distro. This bug causes any changes to an
  existing item to generate a new key, even when the key already
  exists.  After many updates, the .dir file used by dumbdbm grows to
  a huge size, and can cause filesystem problems.
2000-07-10 13:56:35 +00:00
Guido van Rossum 3f36a085fe Cast f.tell() result to int() in _addval(), so it works even on
platforms where tell() returns a long.  (Perhaps tell() should be
fixed too?)  Reported by Greg Humphreys.
1999-04-27 12:21:17 +00:00
Guido van Rossum 22a18904e4 export error == IOError 1996-05-28 22:58:40 +00:00
Guido van Rossum ba426640dd fix typo in _setval() return value 1996-01-25 18:35:24 +00:00
Guido van Rossum 9f824a7984 Initial revision 1995-08-10 19:29:28 +00:00