Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package neatvnc for openSUSE:Factory checked in at 2023-11-06 21:14:10 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/neatvnc (Old) and /work/SRC/openSUSE:Factory/.neatvnc.new.17445 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "neatvnc" Mon Nov 6 21:14:10 2023 rev:10 rq:1123502 version:0.7.1 Changes: -------- --- /work/SRC/openSUSE:Factory/neatvnc/neatvnc.changes 2023-10-05 20:05:51.820588440 +0200 +++ /work/SRC/openSUSE:Factory/.neatvnc.new.17445/neatvnc.changes 2023-11-06 21:14:18.719338981 +0100 @@ -1,0 +2,7 @@ +Mon Nov 6 07:58:22 UTC 2023 - Michael Vetter <[email protected]> + +- Update to 0.7.1: + * Apple's Diffie-Hellman authentication (security type 30) has been fixed. + * A new client connection no longer causes a DNS lookup. + +------------------------------------------------------------------- Old: ---- v0.7.0.tar.gz New: ---- v0.7.1.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ neatvnc.spec ++++++ --- /var/tmp/diff_new_pack.lRA38I/_old 2023-11-06 21:14:21.091426298 +0100 +++ /var/tmp/diff_new_pack.lRA38I/_new 2023-11-06 21:14:21.095426445 +0100 @@ -19,7 +19,7 @@ %define libsoname libneatvnc0 Name: neatvnc -Version: 0.7.0 +Version: 0.7.1 Release: 0 Summary: A VNC server library License: ISC ++++++ v0.7.0.tar.gz -> v0.7.1.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/neatvnc-0.7.0/meson.build new/neatvnc-0.7.1/meson.build --- old/neatvnc-0.7.0/meson.build 2023-10-04 23:12:49.000000000 +0200 +++ new/neatvnc-0.7.1/meson.build 2023-11-05 16:47:14.000000000 +0100 @@ -1,7 +1,7 @@ project( 'neatvnc', 'c', - version: '0.7.0', + version: '0.7.1', license: 'ISC', default_options: [ 'c_std=gnu11', diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/neatvnc-0.7.0/src/crypto-nettle.c new/neatvnc-0.7.1/src/crypto-nettle.c --- old/neatvnc-0.7.0/src/crypto-nettle.c 2023-10-04 23:12:49.000000000 +0200 +++ new/neatvnc-0.7.1/src/crypto-nettle.c 2023-11-05 16:47:14.000000000 +0100 @@ -318,7 +318,7 @@ aes128_set_encrypt_key(&self->enc_ctx.aes128_ecb, enc_key); if (dec_key) - aes128_set_decrypt_key(&self->enc_ctx.aes128_ecb, dec_key); + aes128_set_decrypt_key(&self->dec_ctx.aes128_ecb, dec_key); self->encrypt = crypto_cipher_aes128_ecb_encrypt; self->decrypt = crypto_cipher_aes128_ecb_decrypt; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/neatvnc-0.7.0/src/server.c new/neatvnc-0.7.1/src/server.c --- old/neatvnc-0.7.0/src/server.c 2023-10-04 23:12:49.000000000 +0200 +++ new/neatvnc-0.7.1/src/server.c 2023-11-05 16:47:14.000000000 +0100 @@ -82,6 +82,8 @@ static bool client_has_encoding(const struct nvnc_client* client, enum rfb_encodings encoding); static void process_fb_update_requests(struct nvnc_client* client); +static void sockaddr_to_string(char* dst, size_t sz, + const struct sockaddr* addr); #if defined(GIT_VERSION) EXPORT const char nvnc_version[] = GIT_VERSION; @@ -494,7 +496,6 @@ } else { nvnc_log(NVNC_LOG_INFO, "User \"%s\" rejected", username); security_handshake_failed(client, "Invalid username or password"); - crypto_cipher_del(cipher); } return sizeof(*msg) + key_len; @@ -1674,21 +1675,23 @@ client->buffer_index = 0; } +// TODO: Remove this when nvnc_client_get_hostname gets renamed. static void record_peer_hostname(int fd, struct nvnc_client* client) { struct sockaddr_storage storage; struct sockaddr* peer = (struct sockaddr*)&storage; socklen_t peerlen = sizeof(storage); - if (getpeername(fd, peer, &peerlen) == 0) { - if (peer->sa_family == AF_UNIX) { - snprintf(client->hostname, sizeof(client->hostname), - "unix domain socket"); - } else { - getnameinfo(peer, peerlen, - client->hostname, sizeof(client->hostname), - NULL, 0, // no need for port - 0); - } + if (getpeername(fd, peer, &peerlen) < 0) { + nvnc_log(NVNC_LOG_WARNING, "Failed to get address for client: %m"); + return; + } + + if (peer->sa_family == AF_UNIX) { + snprintf(client->hostname, sizeof(client->hostname), + "unix domain socket"); + } else { + sockaddr_to_string(client->hostname, sizeof(client->hostname), + peer); } } @@ -1775,6 +1778,11 @@ case AF_INET6: inet_ntop(addr->sa_family, &sa_in6->sin6_addr, dst, sz); break; + default: + nvnc_log(NVNC_LOG_DEBUG, + "Don't know how to convert sa_family %d to string", + addr->sa_family); + break; } } @@ -2266,6 +2274,8 @@ return client->server; } +// TODO: This function should be renamed to nvnc_client_get_address and it +// should return the sockaddr. EXPORT const char* nvnc_client_get_hostname(const struct nvnc_client* client) { if (client->hostname[0] == '\0')
