Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package python-kerberos for openSUSE:Factory 
checked in at 2021-04-01 14:17:06
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-kerberos (Old)
 and      /work/SRC/openSUSE:Factory/.python-kerberos.new.2401 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-kerberos"

Thu Apr  1 14:17:06 2021 rev:7 rq:882001 version:1.3.1

Changes:
--------
--- /work/SRC/openSUSE:Factory/python-kerberos/python-kerberos.changes  
2020-11-13 19:00:53.478238106 +0100
+++ 
/work/SRC/openSUSE:Factory/.python-kerberos.new.2401/python-kerberos.changes    
    2021-04-01 14:18:22.444079250 +0200
@@ -1,0 +2,7 @@
+Mon Mar 29 14:26:11 UTC 2021 - Antonio Larrosa <[email protected]>
+
+- Update to 1.3.1
+  * Stop leaking context objects
+  * Correct pointer alignment
+
+-------------------------------------------------------------------

Old:
----
  kerberos-1.3.0.tar.gz

New:
----
  kerberos-1.3.1.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ python-kerberos.spec ++++++
--- /var/tmp/diff_new_pack.1lTjzR/_old  2021-04-01 14:18:22.984080090 +0200
+++ /var/tmp/diff_new_pack.1lTjzR/_new  2021-04-01 14:18:22.984080090 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package python-kerberos
 #
-# Copyright (c) 2020 SUSE LLC
+# Copyright (c) 2021 SUSE LLC
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -19,7 +19,7 @@
 %{?!python_module:%define python_module() python-%{**} python3-%{**}}
 %bcond_without test
 Name:           python-kerberos
-Version:        1.3.0
+Version:        1.3.1
 Release:        0
 Summary:        Kerberos high-level interface
 License:        Apache-2.0
@@ -57,7 +57,7 @@
 %python_expand %fdupes %{buildroot}%{$python_sitearch}
 
 %files %{python_files}
-%doc README.rst
+%doc README.md
 %{python_sitearch}/*
 %license LICENSE.txt
 

++++++ kerberos-1.3.0.tar.gz -> kerberos-1.3.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kerberos-1.3.0/MANIFEST.in 
new/kerberos-1.3.1/MANIFEST.in
--- old/kerberos-1.3.0/MANIFEST.in      2018-03-08 21:00:27.000000000 +0100
+++ new/kerberos-1.3.1/MANIFEST.in      2021-01-09 06:26:16.000000000 +0100
@@ -1,3 +1,3 @@
-include LICENSE README.rst
+include LICENSE README.md
 recursive-include src *.c *.h
 recursive-include pysrc *.py
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kerberos-1.3.0/PKG-INFO new/kerberos-1.3.1/PKG-INFO
--- old/kerberos-1.3.0/PKG-INFO 2018-03-08 22:07:34.000000000 +0100
+++ new/kerberos-1.3.1/PKG-INFO 2021-01-09 07:36:31.202741000 +0100
@@ -1,17 +1,12 @@
-Metadata-Version: 1.1
+Metadata-Version: 2.1
 Name: kerberos
-Version: 1.3.0
+Version: 1.3.1
 Summary: Kerberos high-level interface
 Home-page: https://github.com/apple/ccs-pykerberos
 Author: Apple Inc.
 Author-email: [email protected]
 License: Apache License, Version 2.0
-Description-Content-Type: UNKNOWN
-Description: PyKerberos Package
-        ==================
-        
-        .. image:: https://travis-ci.org/apple/ccs-pykerberos.svg?branch=master
-            :target: https://travis-ci.org/apple/ccs-pykerberos
+Description: # PyKerberos Package
         
         This Python package is a high-level wrapper for Kerberos (GSSAPI)
         operations.  The goal is to avoid having to build a module that wraps
@@ -22,16 +17,15 @@
         Much of the C-code here is adapted from Apache's mod_auth_kerb-5.0rc7.
         
         
-        Build
-        =====
+        ## Build
         
         In this directory, run:
         
-          python setup.py build
-        
+        ```
+        python setup.py build
+        ```
         
-        Testing
-        =======
+        ## Testing
         
         To run the tests in the tests folder, you must have a valid Kerberos 
setup on
         the test machine. You can use the script .travis.sh as quick and easy 
way to
@@ -39,18 +33,18 @@
         Otherwise you can also run the following to run a self contained Docker
         container
         
-        .. code-block: bash
-        
-          docker run \
-          -v $(pwd):/app \
-          -w /app \
-          -e PYENV=2.7.13 \
-          -e KERBEROS_USERNAME=administrator \
-          -e KERBEROS_PASSWORD=Password01 \
-          -e KERBEROS_REALM=example.com \
-          -e KERBEROS_PORT=80 \
-          ubuntu:16.04 \
-          /bin/bash .travis.sh
+        ```
+        docker run \
+        -v $(pwd):/app \
+        -w /app \
+        -e PYENV=2.7.13 \
+        -e KERBEROS_USERNAME=administrator \
+        -e KERBEROS_PASSWORD=Password01 \
+        -e KERBEROS_REALM=example.com \
+        -e KERBEROS_PORT=80 \
+        ubuntu:16.04 \
+        /bin/bash .travis.sh
+        ```
         
         The docker command needs to be run in the same directory as this 
library and
         you can test it with different Python versions by changing the value 
of the
@@ -59,16 +53,14 @@
         Please have a look at testing_notes.md for more information.
         
         
-        IMPORTANT
-        =========
+        ## IMPORTANT
         
         The checkPassword method provided by this library is meant only for 
testing purposes as it does
         not offer any protection against possible KDC spoofing. That method 
should not be used in any
         production code.
         
         
-        Channel Bindings
-        ================
+        ## Channel Bindings
         
         You can use this library to authenticate with Channel Binding support. 
Channel
         Bindings are tags that identify the particular data channel being used 
with the
@@ -84,52 +76,49 @@
         <https://tools.ietf.org/html/rfc5929> using the 
'tls-server-endpoint-point'
         type.
         
-        .. code-block:: python
-        
-           import hashlib
-        
-            def get_channel_bindings_application_data(socket):
-                # This is a highly simplified example, there are other use 
cases
-                # where you might need to use different hash types or get a 
socket
-                # object somehow.
-                server_certificate = socket.getpeercert(True)
-                certificate_hash = 
hashlib.sha256(server_certificate).hexdigest().upper()
-                certificate_digest = base64.b16decode(certificate_hash)
-                application_data = b'tls-server-end-point:%s' % 
certificate_digest
+        ```
+        import hashlib
         
-                return application_data
+        def get_channel_bindings_application_data(socket):
+            # This is a highly simplified example, there are other use cases
+            # where you might need to use different hash types or get a socket
+            # object somehow.
+            server_certificate = socket.getpeercert(True)
+            certificate_hash = 
hashlib.sha256(server_certificate).hexdigest().upper()
+            certificate_digest = base64.b16decode(certificate_hash)
+            application_data = b'tls-server-end-point:%s' % certificate_digest
         
-            def main():
-                # Code to setup a socket with the server
-                # A lot of code to setup the handshake and start the auth 
process
-                socket = getsocketsomehow()
+            return application_data
         
-                # Connect to the host and start the auth process
+        def main():
+            # Code to setup a socket with the server
+            # A lot of code to setup the handshake and start the auth process
+            socket = getsocketsomehow()
         
-                # Build the channel bindings object
-                application_data = 
get_channel_bindings_application_data(socket)
-                channel_bindings = 
kerberos.channelBindings(application_data=application_data)
+            # Connect to the host and start the auth process
         
-                # More work to get responses from the server
+            # Build the channel bindings object
+            application_data = get_channel_bindings_application_data(socket)
+            channel_bindings = 
kerberos.channelBindings(application_data=application_data)
         
-                result, context = kerberos.authGSSClientInit(kerb_spn, 
gssflags=gssflags, principal=principal)
+            # More work to get responses from the server
         
-                # Pass through the channel_bindings object as created in the 
kerberos.channelBindings method
-                result = kerberos.authGSSClientStep(context, neg_resp_value, 
channel_bindings=channel_bindings)
+            result, context = kerberos.authGSSClientInit(kerb_spn, 
gssflags=gssflags, principal=principal)
         
-                # Repeat as necessary
+            # Pass through the channel_bindings object as created in the 
kerberos.channelBindings method
+            result = kerberos.authGSSClientStep(context, neg_resp_value, 
channel_bindings=channel_bindings)
         
+            # Repeat as necessary
+        ```
         
-        Python APIs
-        ===========
+        ## Python APIs
         
         See kerberos.py.
         
         
-        Copyright and License
-        =====================
+        ## Copyright and License
         
-        Copyright (c) 2006-2018 Apple Inc.  All rights reserved.
+        Copyright (c) 2006-2021 Apple Inc.  All rights reserved.
         
         This software is licensed under the Apache License, Version 2.0.  The
         Apache License is a well-established open source license, enabling
@@ -146,3 +135,4 @@
 Classifier: Programming Language :: Python :: 3
 Classifier: Topic :: Software Development :: Libraries :: Python Modules
 Classifier: Topic :: System :: Systems Administration :: 
Authentication/Directory
+Description-Content-Type: text/markdown
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kerberos-1.3.0/README.md new/kerberos-1.3.1/README.md
--- old/kerberos-1.3.0/README.md        1970-01-01 01:00:00.000000000 +0100
+++ new/kerberos-1.3.1/README.md        2021-01-08 00:52:18.000000000 +0100
@@ -0,0 +1,119 @@
+# PyKerberos Package
+
+This Python package is a high-level wrapper for Kerberos (GSSAPI)
+operations.  The goal is to avoid having to build a module that wraps
+the entire Kerberos.framework, and instead offer a limited set of
+functions that do what is needed for client/server Kerberos
+authentication based on <http://www.ietf.org/rfc/rfc4559.txt>.
+
+Much of the C-code here is adapted from Apache's mod_auth_kerb-5.0rc7.
+
+
+## Build
+
+In this directory, run:
+
+```
+python setup.py build
+```
+
+## Testing
+
+To run the tests in the tests folder, you must have a valid Kerberos setup on
+the test machine. You can use the script .travis.sh as quick and easy way to
+setup a Kerberos KDC and Apache web endpoint that can be used for the tests.
+Otherwise you can also run the following to run a self contained Docker
+container
+
+```
+docker run \
+-v $(pwd):/app \
+-w /app \
+-e PYENV=2.7.13 \
+-e KERBEROS_USERNAME=administrator \
+-e KERBEROS_PASSWORD=Password01 \
+-e KERBEROS_REALM=example.com \
+-e KERBEROS_PORT=80 \
+ubuntu:16.04 \
+/bin/bash .travis.sh
+```
+
+The docker command needs to be run in the same directory as this library and
+you can test it with different Python versions by changing the value of the
+PYENV environment value set in the command.
+
+Please have a look at testing_notes.md for more information.
+
+
+## IMPORTANT
+
+The checkPassword method provided by this library is meant only for testing 
purposes as it does
+not offer any protection against possible KDC spoofing. That method should not 
be used in any
+production code.
+
+
+## Channel Bindings
+
+You can use this library to authenticate with Channel Binding support. Channel
+Bindings are tags that identify the particular data channel being used with the
+authentication. You can use Channel bindings to offer more proof of a valid
+identity. Some services like Microsoft's Extended Protection can enforce
+Channel Binding support on authorisation and you can use this library to meet
+those requirements.
+
+More details on Channel Bindings as set through the GSSAPI can be found here
+<https://docs.oracle.com/cd/E19455-01/806-3814/overview-52/index.html>. Using
+TLS as a example this is how you would add Channel Binding support to your
+authentication mechanism. The following code snippet is based on RFC5929
+<https://tools.ietf.org/html/rfc5929> using the 'tls-server-endpoint-point'
+type.
+
+```
+import hashlib
+
+def get_channel_bindings_application_data(socket):
+    # This is a highly simplified example, there are other use cases
+    # where you might need to use different hash types or get a socket
+    # object somehow.
+    server_certificate = socket.getpeercert(True)
+    certificate_hash = hashlib.sha256(server_certificate).hexdigest().upper()
+    certificate_digest = base64.b16decode(certificate_hash)
+    application_data = b'tls-server-end-point:%s' % certificate_digest
+
+    return application_data
+
+def main():
+    # Code to setup a socket with the server
+    # A lot of code to setup the handshake and start the auth process
+    socket = getsocketsomehow()
+
+    # Connect to the host and start the auth process
+
+    # Build the channel bindings object
+    application_data = get_channel_bindings_application_data(socket)
+    channel_bindings = 
kerberos.channelBindings(application_data=application_data)
+
+    # More work to get responses from the server
+
+    result, context = kerberos.authGSSClientInit(kerb_spn, gssflags=gssflags, 
principal=principal)
+
+    # Pass through the channel_bindings object as created in the 
kerberos.channelBindings method
+    result = kerberos.authGSSClientStep(context, neg_resp_value, 
channel_bindings=channel_bindings)
+
+    # Repeat as necessary
+```
+
+## Python APIs
+
+See kerberos.py.
+
+
+## Copyright and License
+
+Copyright (c) 2006-2021 Apple Inc.  All rights reserved.
+
+This software is licensed under the Apache License, Version 2.0.  The
+Apache License is a well-established open source license, enabling
+collaborative open source software development.
+
+See the "LICENSE" file for the full text of the license terms.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kerberos-1.3.0/README.rst 
new/kerberos-1.3.1/README.rst
--- old/kerberos-1.3.0/README.rst       2018-03-08 21:00:27.000000000 +0100
+++ new/kerberos-1.3.1/README.rst       1970-01-01 01:00:00.000000000 +0100
@@ -1,129 +0,0 @@
-PyKerberos Package
-==================
-
-.. image:: https://travis-ci.org/apple/ccs-pykerberos.svg?branch=master
-    :target: https://travis-ci.org/apple/ccs-pykerberos
-
-This Python package is a high-level wrapper for Kerberos (GSSAPI)
-operations.  The goal is to avoid having to build a module that wraps
-the entire Kerberos.framework, and instead offer a limited set of
-functions that do what is needed for client/server Kerberos
-authentication based on <http://www.ietf.org/rfc/rfc4559.txt>.
-
-Much of the C-code here is adapted from Apache's mod_auth_kerb-5.0rc7.
-
-
-Build
-=====
-
-In this directory, run:
-
-  python setup.py build
-
-
-Testing
-=======
-
-To run the tests in the tests folder, you must have a valid Kerberos setup on
-the test machine. You can use the script .travis.sh as quick and easy way to
-setup a Kerberos KDC and Apache web endpoint that can be used for the tests.
-Otherwise you can also run the following to run a self contained Docker
-container
-
-.. code-block: bash
-
-  docker run \
-  -v $(pwd):/app \
-  -w /app \
-  -e PYENV=2.7.13 \
-  -e KERBEROS_USERNAME=administrator \
-  -e KERBEROS_PASSWORD=Password01 \
-  -e KERBEROS_REALM=example.com \
-  -e KERBEROS_PORT=80 \
-  ubuntu:16.04 \
-  /bin/bash .travis.sh
-
-The docker command needs to be run in the same directory as this library and
-you can test it with different Python versions by changing the value of the
-PYENV environment value set in the command.
-
-Please have a look at testing_notes.md for more information.
-
-
-IMPORTANT
-=========
-
-The checkPassword method provided by this library is meant only for testing 
purposes as it does
-not offer any protection against possible KDC spoofing. That method should not 
be used in any
-production code.
-
-
-Channel Bindings
-================
-
-You can use this library to authenticate with Channel Binding support. Channel
-Bindings are tags that identify the particular data channel being used with the
-authentication. You can use Channel bindings to offer more proof of a valid
-identity. Some services like Microsoft's Extended Protection can enforce
-Channel Binding support on authorisation and you can use this library to meet
-those requirements.
-
-More details on Channel Bindings as set through the GSSAPI can be found here
-<https://docs.oracle.com/cd/E19455-01/806-3814/overview-52/index.html>. Using
-TLS as a example this is how you would add Channel Binding support to your
-authentication mechanism. The following code snippet is based on RFC5929
-<https://tools.ietf.org/html/rfc5929> using the 'tls-server-endpoint-point'
-type.
-
-.. code-block:: python
-
-   import hashlib
-
-    def get_channel_bindings_application_data(socket):
-        # This is a highly simplified example, there are other use cases
-        # where you might need to use different hash types or get a socket
-        # object somehow.
-        server_certificate = socket.getpeercert(True)
-        certificate_hash = 
hashlib.sha256(server_certificate).hexdigest().upper()
-        certificate_digest = base64.b16decode(certificate_hash)
-        application_data = b'tls-server-end-point:%s' % certificate_digest
-
-        return application_data
-
-    def main():
-        # Code to setup a socket with the server
-        # A lot of code to setup the handshake and start the auth process
-        socket = getsocketsomehow()
-
-        # Connect to the host and start the auth process
-
-        # Build the channel bindings object
-        application_data = get_channel_bindings_application_data(socket)
-        channel_bindings = 
kerberos.channelBindings(application_data=application_data)
-
-        # More work to get responses from the server
-
-        result, context = kerberos.authGSSClientInit(kerb_spn, 
gssflags=gssflags, principal=principal)
-
-        # Pass through the channel_bindings object as created in the 
kerberos.channelBindings method
-        result = kerberos.authGSSClientStep(context, neg_resp_value, 
channel_bindings=channel_bindings)
-
-        # Repeat as necessary
-
-
-Python APIs
-===========
-
-See kerberos.py.
-
-
-Copyright and License
-=====================
-
-Copyright (c) 2006-2018 Apple Inc.  All rights reserved.
-
-This software is licensed under the Apache License, Version 2.0.  The
-Apache License is a well-established open source license, enabling
-collaborative open source software development.
-
-See the "LICENSE" file for the full text of the license terms.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kerberos-1.3.0/kerberos.egg-info/PKG-INFO 
new/kerberos-1.3.1/kerberos.egg-info/PKG-INFO
--- old/kerberos-1.3.0/kerberos.egg-info/PKG-INFO       2018-03-08 
22:07:34.000000000 +0100
+++ new/kerberos-1.3.1/kerberos.egg-info/PKG-INFO       2021-01-09 
07:36:31.000000000 +0100
@@ -1,17 +1,12 @@
-Metadata-Version: 1.1
+Metadata-Version: 2.1
 Name: kerberos
-Version: 1.3.0
+Version: 1.3.1
 Summary: Kerberos high-level interface
 Home-page: https://github.com/apple/ccs-pykerberos
 Author: Apple Inc.
 Author-email: [email protected]
 License: Apache License, Version 2.0
-Description-Content-Type: UNKNOWN
-Description: PyKerberos Package
-        ==================
-        
-        .. image:: https://travis-ci.org/apple/ccs-pykerberos.svg?branch=master
-            :target: https://travis-ci.org/apple/ccs-pykerberos
+Description: # PyKerberos Package
         
         This Python package is a high-level wrapper for Kerberos (GSSAPI)
         operations.  The goal is to avoid having to build a module that wraps
@@ -22,16 +17,15 @@
         Much of the C-code here is adapted from Apache's mod_auth_kerb-5.0rc7.
         
         
-        Build
-        =====
+        ## Build
         
         In this directory, run:
         
-          python setup.py build
-        
+        ```
+        python setup.py build
+        ```
         
-        Testing
-        =======
+        ## Testing
         
         To run the tests in the tests folder, you must have a valid Kerberos 
setup on
         the test machine. You can use the script .travis.sh as quick and easy 
way to
@@ -39,18 +33,18 @@
         Otherwise you can also run the following to run a self contained Docker
         container
         
-        .. code-block: bash
-        
-          docker run \
-          -v $(pwd):/app \
-          -w /app \
-          -e PYENV=2.7.13 \
-          -e KERBEROS_USERNAME=administrator \
-          -e KERBEROS_PASSWORD=Password01 \
-          -e KERBEROS_REALM=example.com \
-          -e KERBEROS_PORT=80 \
-          ubuntu:16.04 \
-          /bin/bash .travis.sh
+        ```
+        docker run \
+        -v $(pwd):/app \
+        -w /app \
+        -e PYENV=2.7.13 \
+        -e KERBEROS_USERNAME=administrator \
+        -e KERBEROS_PASSWORD=Password01 \
+        -e KERBEROS_REALM=example.com \
+        -e KERBEROS_PORT=80 \
+        ubuntu:16.04 \
+        /bin/bash .travis.sh
+        ```
         
         The docker command needs to be run in the same directory as this 
library and
         you can test it with different Python versions by changing the value 
of the
@@ -59,16 +53,14 @@
         Please have a look at testing_notes.md for more information.
         
         
-        IMPORTANT
-        =========
+        ## IMPORTANT
         
         The checkPassword method provided by this library is meant only for 
testing purposes as it does
         not offer any protection against possible KDC spoofing. That method 
should not be used in any
         production code.
         
         
-        Channel Bindings
-        ================
+        ## Channel Bindings
         
         You can use this library to authenticate with Channel Binding support. 
Channel
         Bindings are tags that identify the particular data channel being used 
with the
@@ -84,52 +76,49 @@
         <https://tools.ietf.org/html/rfc5929> using the 
'tls-server-endpoint-point'
         type.
         
-        .. code-block:: python
-        
-           import hashlib
-        
-            def get_channel_bindings_application_data(socket):
-                # This is a highly simplified example, there are other use 
cases
-                # where you might need to use different hash types or get a 
socket
-                # object somehow.
-                server_certificate = socket.getpeercert(True)
-                certificate_hash = 
hashlib.sha256(server_certificate).hexdigest().upper()
-                certificate_digest = base64.b16decode(certificate_hash)
-                application_data = b'tls-server-end-point:%s' % 
certificate_digest
+        ```
+        import hashlib
         
-                return application_data
+        def get_channel_bindings_application_data(socket):
+            # This is a highly simplified example, there are other use cases
+            # where you might need to use different hash types or get a socket
+            # object somehow.
+            server_certificate = socket.getpeercert(True)
+            certificate_hash = 
hashlib.sha256(server_certificate).hexdigest().upper()
+            certificate_digest = base64.b16decode(certificate_hash)
+            application_data = b'tls-server-end-point:%s' % certificate_digest
         
-            def main():
-                # Code to setup a socket with the server
-                # A lot of code to setup the handshake and start the auth 
process
-                socket = getsocketsomehow()
+            return application_data
         
-                # Connect to the host and start the auth process
+        def main():
+            # Code to setup a socket with the server
+            # A lot of code to setup the handshake and start the auth process
+            socket = getsocketsomehow()
         
-                # Build the channel bindings object
-                application_data = 
get_channel_bindings_application_data(socket)
-                channel_bindings = 
kerberos.channelBindings(application_data=application_data)
+            # Connect to the host and start the auth process
         
-                # More work to get responses from the server
+            # Build the channel bindings object
+            application_data = get_channel_bindings_application_data(socket)
+            channel_bindings = 
kerberos.channelBindings(application_data=application_data)
         
-                result, context = kerberos.authGSSClientInit(kerb_spn, 
gssflags=gssflags, principal=principal)
+            # More work to get responses from the server
         
-                # Pass through the channel_bindings object as created in the 
kerberos.channelBindings method
-                result = kerberos.authGSSClientStep(context, neg_resp_value, 
channel_bindings=channel_bindings)
+            result, context = kerberos.authGSSClientInit(kerb_spn, 
gssflags=gssflags, principal=principal)
         
-                # Repeat as necessary
+            # Pass through the channel_bindings object as created in the 
kerberos.channelBindings method
+            result = kerberos.authGSSClientStep(context, neg_resp_value, 
channel_bindings=channel_bindings)
         
+            # Repeat as necessary
+        ```
         
-        Python APIs
-        ===========
+        ## Python APIs
         
         See kerberos.py.
         
         
-        Copyright and License
-        =====================
+        ## Copyright and License
         
-        Copyright (c) 2006-2018 Apple Inc.  All rights reserved.
+        Copyright (c) 2006-2021 Apple Inc.  All rights reserved.
         
         This software is licensed under the Apache License, Version 2.0.  The
         Apache License is a well-established open source license, enabling
@@ -146,3 +135,4 @@
 Classifier: Programming Language :: Python :: 3
 Classifier: Topic :: Software Development :: Libraries :: Python Modules
 Classifier: Topic :: System :: Systems Administration :: 
Authentication/Directory
+Description-Content-Type: text/markdown
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kerberos-1.3.0/kerberos.egg-info/SOURCES.txt 
new/kerberos-1.3.1/kerberos.egg-info/SOURCES.txt
--- old/kerberos-1.3.0/kerberos.egg-info/SOURCES.txt    2018-03-08 
22:07:34.000000000 +0100
+++ new/kerberos-1.3.1/kerberos.egg-info/SOURCES.txt    2021-01-09 
07:36:31.000000000 +0100
@@ -1,5 +1,5 @@
 MANIFEST.in
-README.rst
+README.md
 setup.py
 kerberos.egg-info/PKG-INFO
 kerberos.egg-info/SOURCES.txt
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kerberos-1.3.0/setup.py new/kerberos-1.3.1/setup.py
--- old/kerberos-1.3.0/setup.py 2018-03-08 21:00:27.000000000 +0100
+++ new/kerberos-1.3.1/setup.py 2021-01-09 07:08:45.000000000 +0100
@@ -16,6 +16,7 @@
 
 from os.path import dirname, join as joinpath
 from setuptools import setup, Extension
+from io import open
 
 try:
     from subprocess import getoutput
@@ -29,11 +30,14 @@
 
 project_name = "kerberos"
 
-version_string = "1.3.0"
+version_string = "1.3.1"
 
 description = "Kerberos high-level interface"
 
-long_description = open(joinpath(dirname(__file__), "README.rst")).read()
+with open("README.md", "r", encoding="utf-8") as fh:
+    long_description = fh.read()
+
+long_description_content_type = "text/markdown"
 
 url = "https://github.com/apple/ccs-pykerberos";
 
@@ -105,12 +109,14 @@
 # Run setup
 #
 
+
 def doSetup():
     setup(
         name=project_name,
         version=version_string,
         description=description,
         long_description=long_description,
+        long_description_content_type=long_description_content_type,
         url=url,
         classifiers=classifiers,
         author=author,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kerberos-1.3.0/src/kerberos.c 
new/kerberos-1.3.1/src/kerberos.c
--- old/kerberos-1.3.0/src/kerberos.c   2018-03-08 21:00:27.000000000 +0100
+++ new/kerberos-1.3.1/src/kerberos.c   2021-01-09 05:30:38.000000000 +0100
@@ -60,11 +60,14 @@
           ob = Py_InitModule3(name, methods, doc);
 #endif
 
-static char krb5_mech_oid_bytes [] = "\x2a\x86\x48\x86\xf7\x12\x01\x02\x02";
-gss_OID_desc krb5_mech_oid = { 9, &krb5_mech_oid_bytes };
+typedef union { char b[16]; uint64_t ull[2]; } align16;
+typedef union { char b[8]; uint64_t ull; } align8;
 
-static char spnego_mech_oid_bytes[] = "\x2b\x06\x01\x05\x05\x02";
-gss_OID_desc spnego_mech_oid = { 6, &spnego_mech_oid_bytes };
+static align16 krb5_mech_oid_bytes = { { 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x12, 
0x01, 0x02, 0x02 } };
+gss_OID_desc krb5_mech_oid = { 9, NULL };
+
+static align8 spnego_mech_oid_bytes = { { 0x2b, 0x06, 0x01, 0x05, 0x05, 0x02 } 
};
+gss_OID_desc spnego_mech_oid = { 6, NULL };
 
 PyObject *KrbException_class;
 PyObject *BasicAuthException_class;
@@ -177,6 +180,10 @@
         return NULL;
     }
     pystate = PyCObject_FromVoidPtr(state, &destroy_gss_client);
+    if (pystate == NULL) {
+        free(state);
+        return NULL;
+    }
 
     if (pydelegatestate != NULL && PyCObject_Check(pydelegatestate)) {
         delegatestate = 
(gss_server_state*)PyCObject_AsVoidPtr(pydelegatestate);
@@ -191,10 +198,11 @@
     );
 
     if (result == AUTH_GSS_ERROR) {
+        Py_DECREF(pystate);
         return NULL;
     }
 
-    return Py_BuildValue("(iO)", result, pystate);
+    return Py_BuildValue("(iN)", result, pystate);
 }
 
 static PyObject *authGSSClientClean(PyObject *self, PyObject *args)
@@ -530,14 +538,19 @@
         return NULL;
     }
     pystate = PyCObject_FromVoidPtr(state, &destroy_gss_server);
+    if (pystate == NULL) {
+        free(state);
+        return NULL;
+    }
 
     result = authenticate_gss_server_init(service, state);
 
     if (result == AUTH_GSS_ERROR) {
+        Py_DECREF(pystate);
         return NULL;
     }
 
-    return Py_BuildValue("(iO)", result, pystate);
+    return Py_BuildValue("(iN)", result, pystate);
 }
 
 static PyObject *authGSSServerClean(PyObject *self, PyObject *args)
@@ -901,9 +914,13 @@
     PyDict_SetItemString(
         d, "GSS_C_TRANS_FLAG", PyInt_FromLong(GSS_C_TRANS_FLAG)
     );
+    krb5_mech_oid.elements =  &krb5_mech_oid_bytes.b;
+
     PyDict_SetItemString(
         d, "GSS_MECH_OID_KRB5", PyCObject_FromVoidPtr(&krb5_mech_oid, NULL)
     );
+
+    spnego_mech_oid.elements = &spnego_mech_oid_bytes.b;
     PyDict_SetItemString(
         d, "GSS_MECH_OID_SPNEGO", PyCObject_FromVoidPtr(&spnego_mech_oid, NULL)
     );

Reply via email to