Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package aws-c-io for openSUSE:Factory 
checked in at 2025-09-02 18:00:30
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/aws-c-io (Old)
 and      /work/SRC/openSUSE:Factory/.aws-c-io.new.1977 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "aws-c-io"

Tue Sep  2 18:00:30 2025 rev:27 rq:1302412 version:0.21.4

Changes:
--------
--- /work/SRC/openSUSE:Factory/aws-c-io/aws-c-io.changes        2025-07-23 
16:39:13.333653519 +0200
+++ /work/SRC/openSUSE:Factory/.aws-c-io.new.1977/aws-c-io.changes      
2025-09-02 18:02:02.283867178 +0200
@@ -1,0 +2,12 @@
+Tue Sep  2 08:27:37 UTC 2025 - John Paul Adrian Glaubitz 
<adrian.glaub...@suse.com>
+
+- Update to version 0.21.4
+  * Scheduled Iteration Mem-release Order by @sbSteveK in (#752)
+- from version 0.21.3
+  * Change stale issue and discussion handling to run once a week
+    by @DmitriyMusatkin in (#747)
+  * Fix warnings found by the Undefined Behavior Sanitizer by @bjosv in (#748)
+  * Fix memory leaks in NW socket by @sfod in (#749)
+  * Fix Dispatch Queue Leak by @xiazhvera in (#750)
+
+-------------------------------------------------------------------

Old:
----
  v0.21.2.tar.gz

New:
----
  v0.21.4.tar.gz

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

Other differences:
------------------
++++++ aws-c-io.spec ++++++
--- /var/tmp/diff_new_pack.KO2vQh/_old  2025-09-02 18:02:03.003897430 +0200
+++ /var/tmp/diff_new_pack.KO2vQh/_new  2025-09-02 18:02:03.003897430 +0200
@@ -21,7 +21,7 @@
 %define library_version 1.0.0
 %define library_soversion 0unstable
 Name:           aws-c-io
-Version:        0.21.2
+Version:        0.21.4
 Release:        0
 Summary:        I/O and TLS package AWS SDK for C
 License:        Apache-2.0

++++++ v0.21.2.tar.gz -> v0.21.4.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/aws-c-io-0.21.2/.github/workflows/handle-stale-discussions.yml 
new/aws-c-io-0.21.4/.github/workflows/handle-stale-discussions.yml
--- old/aws-c-io-0.21.2/.github/workflows/handle-stale-discussions.yml  
2025-07-18 00:45:22.000000000 +0200
+++ new/aws-c-io-0.21.4/.github/workflows/handle-stale-discussions.yml  
2025-08-20 22:08:05.000000000 +0200
@@ -1,7 +1,7 @@
 name: HandleStaleDiscussions
 on:
   schedule:
-    - cron: '0 */4 * * *'
+    - cron: "0 9 * * 1"
   discussion_comment:
     types: [created]
 
@@ -15,4 +15,4 @@
       - name: Stale discussions action
         uses: aws-github-ops/handle-stale-discussions@v1
         env:
-          GITHUB_TOKEN:  ${{secrets.GITHUB_TOKEN}}
\ No newline at end of file
+          GITHUB_TOKEN:  ${{secrets.GITHUB_TOKEN}}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/aws-c-io-0.21.2/.github/workflows/stale_issue.yml 
new/aws-c-io-0.21.4/.github/workflows/stale_issue.yml
--- old/aws-c-io-0.21.2/.github/workflows/stale_issue.yml       2025-07-18 
00:45:22.000000000 +0200
+++ new/aws-c-io-0.21.4/.github/workflows/stale_issue.yml       2025-08-20 
22:08:05.000000000 +0200
@@ -3,7 +3,7 @@
 # Controls when the action will run.
 on:
   schedule:
-    - cron: "*/60 * * * *"
+    - cron: "0 9 * * 1"
 
 jobs:
   cleanup:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/aws-c-io-0.21.2/source/channel_bootstrap.c 
new/aws-c-io-0.21.4/source/channel_bootstrap.c
--- old/aws-c-io-0.21.2/source/channel_bootstrap.c      2025-07-18 
00:45:22.000000000 +0200
+++ new/aws-c-io-0.21.4/source/channel_bootstrap.c      2025-08-20 
22:08:05.000000000 +0200
@@ -27,11 +27,12 @@
     struct struct_type *shutdown_args = struct_type##_new(allocator, 
__VA_ARGS__);                                     \
     aws_socket_set_cleanup_complete_callback(socket, init_function, 
shutdown_args);
 
-static void s_client_bootstrap_destroy_impl(struct aws_client_bootstrap 
*bootstrap) {
+static void s_client_bootstrap_destroy_impl(void *user_data) {
+    struct aws_client_bootstrap *bootstrap = user_data;
     AWS_ASSERT(bootstrap);
     AWS_LOGF_DEBUG(AWS_LS_IO_CHANNEL_BOOTSTRAP, "id=%p: bootstrap destroying", 
(void *)bootstrap);
     aws_client_bootstrap_shutdown_complete_fn *on_shutdown_complete = 
bootstrap->on_shutdown_complete;
-    void *user_data = bootstrap->user_data;
+    void *shutdown_user_data = bootstrap->user_data;
 
     aws_event_loop_group_release(bootstrap->event_loop_group);
     aws_host_resolver_release(bootstrap->host_resolver);
@@ -39,7 +40,7 @@
     aws_mem_release(bootstrap->allocator, bootstrap);
 
     if (on_shutdown_complete) {
-        on_shutdown_complete(user_data);
+        on_shutdown_complete(shutdown_user_data);
     }
 }
 
@@ -159,7 +160,8 @@
     return args;
 }
 
-static void s_client_connection_args_destroy(struct client_connection_args 
*args) {
+static void s_client_connection_args_destroy(void *user_data) {
+    struct client_connection_args *args = user_data;
     AWS_ASSERT(args);
     AWS_LOGF_TRACE(AWS_LS_IO_CHANNEL_BOOTSTRAP, "destroying client connection 
args, args=%p", (void *)args);
 
@@ -1181,7 +1183,8 @@
     return AWS_OP_ERR;
 }
 
-void s_server_bootstrap_destroy_impl(struct aws_server_bootstrap *bootstrap) {
+void s_server_bootstrap_destroy_impl(void *user_data) {
+    struct aws_server_bootstrap *bootstrap = user_data;
     AWS_ASSERT(bootstrap);
     aws_event_loop_group_release(bootstrap->event_loop_group);
     aws_mem_release(bootstrap->allocator, bootstrap);
@@ -1265,7 +1268,8 @@
     return args;
 }
 
-static void s_server_connection_args_destroy(struct server_connection_args 
*args) {
+static void s_server_connection_args_destroy(void *user_data) {
+    struct server_connection_args *args = user_data;
     if (args == NULL) {
         return;
     }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/aws-c-io-0.21.2/source/darwin/dispatch_queue_event_loop.c 
new/aws-c-io-0.21.4/source/darwin/dispatch_queue_event_loop.c
--- old/aws-c-io-0.21.2/source/darwin/dispatch_queue_event_loop.c       
2025-07-18 00:45:22.000000000 +0200
+++ new/aws-c-io-0.21.4/source/darwin/dispatch_queue_event_loop.c       
2025-08-20 22:08:05.000000000 +0200
@@ -171,8 +171,9 @@
         return;
     }
 
-    s_dispatch_loop_release(entry->dispatch_loop);
+    struct aws_dispatch_loop *dispatch_loop_for_release = entry->dispatch_loop;
     aws_mem_release(entry->allocator, entry);
+    s_dispatch_loop_release(dispatch_loop_for_release);
 }
 
 /* Manually called to destroy an aws_event_loop */
@@ -183,6 +184,7 @@
         aws_task_scheduler_clean_up(&dispatch_loop->scheduler);
     }
 
+    dispatch_release(dispatch_loop->dispatch_queue);
     aws_mutex_clean_up(&dispatch_loop->synced_data.synced_data_lock);
     aws_condition_variable_clean_up(&dispatch_loop->synced_data.signal);
     // We don't need to clean up the 
dispatch_loop->synced_data.scheduled_iterations, as all scheduling entries 
should
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/aws-c-io-0.21.2/source/darwin/dispatch_queue_event_loop_private.h 
new/aws-c-io-0.21.4/source/darwin/dispatch_queue_event_loop_private.h
--- old/aws-c-io-0.21.2/source/darwin/dispatch_queue_event_loop_private.h       
2025-07-18 00:45:22.000000000 +0200
+++ new/aws-c-io-0.21.4/source/darwin/dispatch_queue_event_loop_private.h       
2025-08-20 22:08:05.000000000 +0200
@@ -16,6 +16,8 @@
     struct aws_tls_ctx ctx;
     CFAllocatorRef wrapped_allocator;
     CFArrayRef certs;
+    /* The certs field can be set in two different ways, and only one requires 
releasing individual cert objects. */
+    bool cleanup_cert;
     sec_identity_t secitem_identity;
     CFArrayRef ca_cert;
     enum aws_tls_versions minimum_tls_version;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/aws-c-io-0.21.2/source/darwin/nw_socket.c 
new/aws-c-io-0.21.4/source/darwin/nw_socket.c
--- old/aws-c-io-0.21.2/source/darwin/nw_socket.c       2025-07-18 
00:45:22.000000000 +0200
+++ new/aws-c-io-0.21.4/source/darwin/nw_socket.c       2025-08-20 
22:08:05.000000000 +0200
@@ -732,6 +732,8 @@
           s_tls_verification_block(metadata, trust, complete, nw_socket, 
transport_ctx);
         },
         dispatch_loop->dispatch_queue);
+
+    nw_release(sec_options);
 }
 
 static int s_setup_socket_params(struct nw_socket *nw_socket, const struct 
aws_socket_options *options) {
@@ -1041,12 +1043,8 @@
 
         if (nw_socket->mode == NWSM_LISTENER) {
             nw_listener_cancel(nw_socket->os_handle.nw_listener);
-            nw_release(nw_socket->os_handle.nw_listener);
-            nw_socket->os_handle.nw_listener = NULL;
         } else if (nw_socket->mode == NWSM_CONNECTION) {
             nw_connection_cancel(nw_socket->os_handle.nw_connection);
-            nw_release(nw_socket->os_handle.nw_connection);
-            nw_socket->os_handle.nw_connection = NULL;
         }
     }
 
@@ -1104,6 +1102,13 @@
             nw_socket->on_socket_close_complete_fn(nw_socket->close_user_data);
         }
     }
+
+    if (nw_socket->mode == NWSM_LISTENER) {
+        nw_release(nw_socket->os_handle.nw_listener);
+    } else if (nw_socket->mode == NWSM_CONNECTION) {
+        nw_release(nw_socket->os_handle.nw_connection);
+    }
+
     s_release_event_loop(nw_socket);
     aws_ref_count_release(&nw_socket->nw_socket_ref_count);
 }
@@ -1985,7 +1990,6 @@
 
     // released when the connection state changed to 
nw_connection_state_cancelled
     s_socket_acquire_internal_ref(nw_socket);
-    nw_retain(socket->io_handle.data.handle);
     nw_connection_start(socket->io_handle.data.handle);
     s_unlock_socket_synced_data(nw_socket);
 
@@ -2143,7 +2147,6 @@
 
     socket->io_handle.set_queue = s_listener_set_dispatch_queue;
     nw_socket->os_handle.nw_listener = socket->io_handle.data.handle;
-    nw_retain(socket->io_handle.data.handle);
     nw_socket->mode = NWSM_LISTENER;
 
     AWS_LOGF_TRACE(
@@ -2793,6 +2796,7 @@
     nw_connection_send(
         socket->io_handle.data.handle, data, 
_nw_content_context_default_message, true, ^(nw_error_t error) {
           s_handle_nw_connection_send_completion_fn(error, data, nw_socket, 
written_fn, user_data);
+          dispatch_release(data);
         });
 
     s_unlock_socket_synced_data(nw_socket);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/aws-c-io-0.21.2/source/darwin/secure_transport_tls_channel_handler.c 
new/aws-c-io-0.21.4/source/darwin/secure_transport_tls_channel_handler.c
--- old/aws-c-io-0.21.2/source/darwin/secure_transport_tls_channel_handler.c    
2025-07-18 00:45:22.000000000 +0200
+++ new/aws-c-io-0.21.4/source/darwin/secure_transport_tls_channel_handler.c    
2025-08-20 22:08:05.000000000 +0200
@@ -1037,12 +1037,22 @@
     return s_tls_handler_new(allocator, options, slot, kSSLServerSide);
 }
 
+void s_aws_release_cert(const void *val, void *context) {
+    (void)context;
+    CFTypeRef cert = (CFTypeRef)val;
+    CFRelease(cert);
+}
+
 static void s_aws_secure_transport_ctx_destroy(struct secure_transport_ctx 
*secure_transport_ctx) {
     if (secure_transport_ctx == NULL) {
         return;
     }
 
     if (secure_transport_ctx->certs) {
+        if (secure_transport_ctx->cleanup_cert) {
+            CFRange range = CFRangeMake(0, 
CFArrayGetCount(secure_transport_ctx->certs));
+            CFArrayApplyFunction(secure_transport_ctx->certs, range, 
s_aws_release_cert, NULL);
+        }
         CFRelease(secure_transport_ctx->certs);
     }
 
@@ -1087,6 +1097,7 @@
     secure_transport_ctx->verify_peer = options->verify_peer;
     secure_transport_ctx->ca_cert = NULL;
     secure_transport_ctx->certs = NULL;
+    secure_transport_ctx->cleanup_cert = false;
     secure_transport_ctx->secitem_identity = NULL;
     secure_transport_ctx->ctx.alloc = alloc;
     secure_transport_ctx->ctx.impl = secure_transport_ctx;
@@ -1140,6 +1151,7 @@
                     aws_last_error());
                 goto cleanup_wrapped_allocator;
             }
+            secure_transport_ctx->cleanup_cert = true;
         }
     } else if (aws_tls_options_buf_is_set(&options->pkcs12)) {
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/aws-c-io-0.21.2/source/event_loop.c 
new/aws-c-io-0.21.4/source/event_loop.c
--- old/aws-c-io-0.21.2/source/event_loop.c     2025-07-18 00:45:22.000000000 
+0200
+++ new/aws-c-io-0.21.4/source/event_loop.c     2025-08-20 22:08:05.000000000 
+0200
@@ -216,7 +216,8 @@
     aws_thread_current_at_exit(s_event_loop_group_thread_exit, el_group);
 }
 
-static void s_aws_event_loop_group_shutdown_async(struct aws_event_loop_group 
*el_group) {
+static void s_aws_event_loop_group_shutdown_async(void *user_data) {
+    struct aws_event_loop_group *el_group = user_data;
 
     /* It's possible that the last refcount was released on an event-loop 
thread,
      * so we would deadlock if we waited here for all the event-loop threads 
to shut down.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/aws-c-io-0.21.2/source/host_resolver.c 
new/aws-c-io-0.21.4/source/host_resolver.c
--- old/aws-c-io-0.21.2/source/host_resolver.c  2025-07-18 00:45:22.000000000 
+0200
+++ new/aws-c-io-0.21.4/source/host_resolver.c  2025-08-20 22:08:05.000000000 
+0200
@@ -1496,7 +1496,8 @@
     .purge_host_cache = s_resolver_purge_host_cache,
 };
 
-static void s_aws_host_resolver_destroy(struct aws_host_resolver *resolver) {
+static void s_aws_host_resolver_destroy(void *user_data) {
+    struct aws_host_resolver *resolver = user_data;
     AWS_ASSERT(resolver->vtable && resolver->vtable->destroy);
     resolver->vtable->destroy(resolver);
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/aws-c-io-0.21.2/source/s2n/s2n_tls_channel_handler.c 
new/aws-c-io-0.21.4/source/s2n/s2n_tls_channel_handler.c
--- old/aws-c-io-0.21.2/source/s2n/s2n_tls_channel_handler.c    2025-07-18 
00:45:22.000000000 +0200
+++ new/aws-c-io-0.21.4/source/s2n/s2n_tls_channel_handler.c    2025-08-20 
22:08:05.000000000 +0200
@@ -1405,7 +1405,8 @@
     return s_new_tls_handler(allocator, options, slot, S2N_SERVER);
 }
 
-static void s_s2n_ctx_destroy(struct s2n_ctx *s2n_ctx) {
+static void s_s2n_ctx_destroy(void *user_data) {
+    struct s2n_ctx *s2n_ctx = user_data;
     if (s2n_ctx != NULL) {
         if (s2n_ctx->s2n_config) {
             s2n_config_free(s2n_ctx->s2n_config);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/aws-c-io-0.21.2/source/stream.c 
new/aws-c-io-0.21.4/source/stream.c
--- old/aws-c-io-0.21.2/source/stream.c 2025-07-18 00:45:22.000000000 +0200
+++ new/aws-c-io-0.21.4/source/stream.c 2025-08-20 22:08:05.000000000 +0200
@@ -188,7 +188,8 @@
     return AWS_OP_SUCCESS;
 }
 
-static void s_aws_input_stream_byte_cursor_destroy(struct 
aws_input_stream_byte_cursor_impl *impl) {
+static void s_aws_input_stream_byte_cursor_destroy(void *user_data) {
+    struct aws_input_stream_byte_cursor_impl *impl = user_data;
     aws_mem_release(impl->allocator, impl);
 }
 
@@ -271,7 +272,8 @@
     return aws_file_get_length(impl->file, length);
 }
 
-static void s_aws_input_stream_file_destroy(struct aws_input_stream_file_impl 
*impl) {
+static void s_aws_input_stream_file_destroy(void *user_data) {
+    struct aws_input_stream_file_impl *impl = user_data;
 
     if (impl->close_on_clean_up && impl->file) {
         fclose(impl->file);

Reply via email to