@@ -414,7 +414,6 @@ def _netbios_getnode():
414414_uuid_generate_random = _uuid_generate_time = _UuidCreate = None
415415try :
416416 import ctypes , ctypes .util
417- _buffer = ctypes .create_string_buffer (16 )
418417
419418 # The uuid_generate_* routines are provided by libuuid on at least
420419 # Linux and FreeBSD, and provided by libc on Mac OS X.
@@ -447,11 +446,13 @@ def _netbios_getnode():
447446
448447def _unixdll_getnode ():
449448 """Get the hardware address on Unix using ctypes."""
449+ _buffer = ctypes .create_string_buffer (16 )
450450 _uuid_generate_time (_buffer )
451451 return UUID (bytes = bytes_ (_buffer .raw )).node
452452
453453def _windll_getnode ():
454454 """Get the hardware address on Windows using ctypes."""
455+ _buffer = ctypes .create_string_buffer (16 )
455456 if _UuidCreate (_buffer ) == 0 :
456457 return UUID (bytes = bytes_ (_buffer .raw )).node
457458
@@ -499,6 +500,7 @@ def uuid1(node=None, clock_seq=None):
499500
500501 # When the system provides a version-1 UUID generator, use it (but don't
501502 # use UuidCreate here because its UUIDs don't conform to RFC 4122).
503+ _buffer = ctypes .create_string_buffer (16 )
502504 if _uuid_generate_time and node is clock_seq is None :
503505 _uuid_generate_time (_buffer )
504506 return UUID (bytes = bytes_ (_buffer .raw ))
@@ -535,6 +537,7 @@ def uuid4():
535537 """Generate a random UUID."""
536538
537539 # When the system provides a version-4 UUID generator, use it.
540+ _buffer = ctypes .create_string_buffer (16 )
538541 if _uuid_generate_random :
539542 _uuid_generate_random (_buffer )
540543 return UUID (bytes = bytes_ (_buffer .raw ))
0 commit comments