Commit Graph

43 Commits

Author SHA1 Message Date
Zachary Ware 6690eed48b Issue #21151: Fixed a segfault in the _winreg module.
When ``None`` was passed as a ``REG_BINARY`` value to SetValueEx,
PyMem_DEL was called on an uninitialized buffer.  Patch by John Ehresman.

(Also an incidental typo fix in a comment in test_winreg)
2014-07-03 10:57:44 -05:00
Tim Golden 3c603f3618 Issue21349 Passing a memoryview to _winreg.SetValueEx now correctly raises a TypeError where it previously crashed the interpreter. Patch by Brian Kearns 2014-04-26 15:47:08 +01:00
Jesus Cea 8f606a0d4f Closes #20908: Memory leak in Reg2Py() 2014-03-13 17:33:43 +01:00
Brian Curtin 33e05e7905 Fix #16759. Convert DWORD registry values using unsigned long.
When converting REG_DWORD registry values into Python, the conversion
needs to be made from an *unsigned* long (k instead of i) to match the
DWORD type.
2012-12-27 14:37:06 -06:00
Brian Curtin 0e091b0365 Fix #14420. Check for PyLong as well as PyInt when converting in Py2Reg.
This fixes a ValueError seen in winreg.SetValueEx when passed long
winreg.REG_DWORD values that should be supported by the underlying API.
2012-12-27 12:28:51 -06:00
Brian Curtin d7afd31a9b Move a variable declration outside of a loop to match what was
done in r81843 for py3k.
2010-06-08 21:15:06 +00:00
Brian Curtin b64c89bd7a Fix #2810 - handle the case where some registry calls return
ERROR_MORE_DATA, requiring another call to get the remaining data.

Patch by Daniel Stutzbach
2010-05-25 15:06:15 +00:00
Antoine Pitrou c83ea137d7 Untabify C files. Will watch buildbots. 2010-05-09 14:46:46 +00:00
Brian Curtin e33fa887d3 Implement #7347. Add CreateKeyEx, DeleteKeyEx, and update _winreg tests.
*ReflectionKey functions used to not be documented or tested, but they are
now sufficiently documented and tested on platforms where they apply.
Additionally, fixed a bug in QueryReflectionKey which was returning an
incorrect value.

All tests pass from XP through Windows 7, on 32 and 64-bit platforms.
2010-04-02 21:18:14 +00:00
Amaury Forgeot d'Arc 901f200c81 #6201: Fix test_winreg on Windows:
since the introduction of the SETUP_WITH opcode,
__enter__ and __exit__ methods must belong to the type,
and are not retrieved at the instance level (__dict__ or __getattr__).

Add a note in whatsnew about this incompatibility;
old style classes are not affected.
2009-06-09 23:08:13 +00:00
Mark Dickinson 3e4caeb3bf Issue #5341: Fix a variety of spelling errors. 2009-02-21 20:27:01 +00:00
Amaury Forgeot d'Arc a18392a324 #4807: Remove a wrong usage of wsprintf in the winreg module
("windows sprintf", different than swprintf)

Needed for the windows CE port.
2009-01-13 23:19:08 +00:00
Gregory P. Smith dd96db63f6 This reverts r63675 based on the discussion in this thread:
http://mail.python.org/pipermail/python-dev/2008-June/079988.html

Python 2.6 should stick with PyString_* in its codebase.  The PyBytes_* names
in the spirit of 3.0 are available via a #define only.  See the email thread.
2008-06-09 04:58:54 +00:00
Christian Heimes 593daf545b Renamed PyString to PyBytes 2008-05-26 12:51:38 +00:00
Andrew M. Kuchling eba0004198 Typographical fix: 32bit -> 32-bit, 64bit -> 64-bit 2008-04-08 01:33:10 +00:00
Mark Hammond 8a3c8716e8 From issue 1753245 - better _winreg support for x64.
Adds _winreg.DisableReflectionKey, EnableReflectionKey, QueryReflectionKey,
KEY_WOW64_64KEY and KEY_WOW64_32KEY.
2008-04-06 01:42:06 +00:00
Neal Norwitz 4677fbf7de Try to fix a bunch of compiler warnings on Win64. 2008-03-25 04:18:18 +00:00
Christian Heimes b39a756afd Added __enter__ and __exit__ functions to HKEY object
Added ExpandEnvironmentStrings to the _winreg module.
2008-01-08 15:46:10 +00:00
Martin v. Löwis 6819210b9e PEP 3123: Provide forward compatibility with Python 3.0, while keeping
backwards compatibility. Add Py_Refcnt, Py_Type, Py_Size, and
PyVarObject_HEAD_INIT.
2007-07-21 06:55:02 +00:00
Kristján Valur Jónsson 629ec26f63 Include <windows.h> after python.h, so that WINNT is properly set before windows.h is included. Fixes warnings in PC builds. 2007-05-26 19:31:39 +00:00
Kristján Valur Jónsson 17b8e97e2e Merge change 54909 from release25-maint: Fix several minor issues discovered using code analysis in VisualStudio 2005 Team Edition 2007-04-25 00:10:50 +00:00
Martin v. Löwis bda0dde1c4 Patch #1448199: Release GIL around ConnectRegistry. 2006-07-24 10:26:33 +00:00
Tim Peters 313fcd41ab PyEnumKey(): Stop including the trailing NUL byte
in the returned string (logic error introduced by
recent patch).
2006-02-19 04:05:39 +00:00
Tim Peters d9ab979f36 PyEnumKey(): Remove unused local. 2006-02-19 03:34:15 +00:00
Georg Brandl b2699b242d Add sizeof() instead of hardcoding variable length 2006-02-18 23:44:24 +00:00
Georg Brandl 9a928e787c Patch #977553: speed up RegEnumKey call 2006-02-18 23:35:11 +00:00
Neal Norwitz 1ac754fa10 Check return result from Py_InitModule*(). This API can fail.
Probably should be backported.
2006-01-19 06:09:39 +00:00
Tim Peters c3d12ac88c const poisoning, spreading to fix new const warnings
in _winreg.c.
2005-12-24 06:03:06 +00:00
Guido van Rossum a6a38ad55c Remove all uses of alloca() from this module. The alloca() return value
isn't checked, and it *is* possible that a very large alloca() call is
made, e.g. when a large registry value is being read.  I don't know if
alloca() in that case returns NULL or returns a pointer pointing outside
the stack, and I don't want to know -- I've simply replaced all calls to
alloca() with either PyMem_Malloc() or PyString_FromStringAndSize(NULL,)
as appropriate, followed by a size check.  This addresses SF buf 851056.
Will backport to 2.3 next.
2003-11-30 22:01:43 +00:00
Mark Hammond c9083b66bd Correct docstring for SetValueEx() 2003-01-15 23:38:15 +00:00
Thomas Heller e1d18f52c3 Fix an error message in the _winreg module. The error message referred
to a constant in the 'win32con' module, but this constant is also
defined in the _winreg module itself.

Bugfix candidate.
2002-12-20 20:13:35 +00:00
Guido van Rossum e3a8e7ed1d Call me anal, but there was a particular phrase that was speading to
comments everywhere that bugged me: /* Foo is inlined */ instead of
/* Inline Foo */.  Somehow the "is inlined" phrase always confused me
for half a second (thinking, "No it isn't" until I added the missing
"here").  The new phrase is hopefully unambiguous.
2002-08-19 19:26:42 +00:00
Mark Hammond 8235ea1c3a Land Patch [ 566100 ] Rationalize DL_IMPORT and DL_EXPORT. 2002-07-19 06:55:41 +00:00
Martin v. Löwis 14f8b4cfcb Patch #568124: Add doc string macros. 2002-06-13 20:33:02 +00:00
Neal Norwitz 031829d3ef Use symbolic METH_VARARGS instead of 1 for ml_flags 2002-03-31 14:37:44 +00:00
Mark Hammond 4e80bb551e Allow any object supporting the buffer protocol to be written as a binary object. 2000-07-28 03:44:41 +00:00
Thomas Wouters 7e47402264 Spelling fixes supplied by Rob W. W. Hooft. All these are fixes in either
comments, docstrings or error messages. I fixed two minor things in
test_winreg.py ("didn't" -> "Didn't" and "Didnt" -> "Didn't").

There is a minor style issue involved: Guido seems to have preferred English
grammar (behaviour, honour) in a couple places. This patch changes that to
American, which is the more prominent style in the source. I prefer English
myself, so if English is preferred, I'd be happy to supply a patch myself ;)
2000-07-16 12:04:32 +00:00
Fred Drake 25e1726d31 [*** Not tested as I don't have Windows running right now! ***]
Trent Mick <trentm@activestate.com>:

Fix PC/msvcrtmodule.c and PC/winreg.c for Win64. Basically:

- sizeof(HKEY) > sizeof(long) on Win64, so use PyLong_FromVoidPtr()
instead of PyInt_FromLong() to return HKEY values on Win64

- Check for string overflow of an arbitrary registry value (I know
that ensuring that a registry value does not overflow 2**31 characters
seems ridiculous but it is *possible*).

Closes SourceForge patch #100517.
2000-06-30 17:48:51 +00:00
Fred Drake 13634cf7a4 This patch addresses two main issues: (1) There exist some non-fatal
errors in some of the hash algorithms. For exmaple, in float_hash and
complex_hash a certain part of the value is not included in the hash
calculation. See Tim's, Guido's, and my discussion of this on
python-dev in May under the title "fix float_hash and complex_hash for
64-bit *nix"

(2) The hash algorithms that use pointers (e.g. func_hash, code_hash)
are universally not correct on Win64 (they assume that sizeof(long) ==
sizeof(void*))

As well, this patch significantly cleans up the hash code. It adds the
two function _Py_HashDouble and _PyHash_VoidPtr that the various
hashing routine are changed to use.

These help maintain the hash function invariant: (a==b) =>
(hash(a)==hash(b))) I have added Lib/test/test_hash.py and
Lib/test/output/test_hash to test this for some cases.
2000-06-29 19:17:04 +00:00
Fred Drake 270e19b060 Update the module name to _winreg, pending checkin of Paul Prescod's
OO wrapper for this module.
2000-06-29 16:14:14 +00:00
Mark Hammond b422f95db0 Cleanup a few docstrings. 2000-06-09 06:01:47 +00:00
Guido van Rossum b18618dab7 Vladimir Marangozov's long-awaited malloc restructuring.
For more comments, read the patches@python.org archives.
For documentation read the comments in mymalloc.h and objimpl.h.

(This is not exactly what Vladimir posted to the patches list; I've
made a few changes, and Vladimir sent me a fix in private email for a
problem that only occurs in debug mode.  I'm also holding back on his
change to main.c, which seems unnecessary to me.)
2000-05-03 23:44:39 +00:00
Guido van Rossum 9f3712c6f1 Mark Hammond: new winreg module; updated dllbase file. 2000-03-28 20:37:15 +00:00