From: Alexander Sosedkin Date: Tue, 28 Apr 2026 13:26:32 +0000 (+0200) Subject: x509/virt-san: a small OOM-correctness fix X-Git-Tag: 3.8.13^2~55 X-Git-Url: http://git.ipfire.org/gitweb/index.cgi?a=commitdiff_plain;h=fc909c3abddcc2955bebf0de403136ed9ec689c2;p=thirdparty%2Fgnutls.git x509/virt-san: a small OOM-correctness fix Signed-off-by: Alexander Sosedkin --- diff --git a/lib/x509/virt-san.c b/lib/x509/virt-san.c index 92fcab2c87..6067ad1276 100644 --- a/lib/x509/virt-san.c +++ b/lib/x509/virt-san.c @@ -108,11 +108,7 @@ int _gnutls_alt_name_assign_virt_type(struct name_st *name, unsigned type, if (ret < 0) return gnutls_assert_val(ret); - name->type = GNUTLS_SAN_OTHERNAME; - name->san.data = encoded.data; - name->san.size = encoded.size; - name->othername_oid.data = (void *)gnutls_strdup(oid); - name->othername_oid.size = strlen(oid); + name->san = _gnutls_take_datum(&encoded); break; case GNUTLS_SAN_OTHERNAME_KRB5PRINCIPAL: @@ -120,15 +116,19 @@ int _gnutls_alt_name_assign_virt_type(struct name_st *name, unsigned type, &name->san); if (ret < 0) return gnutls_assert_val(ret); - - name->othername_oid.data = (void *)gnutls_strdup(oid); - name->othername_oid.size = strlen(oid); - name->type = GNUTLS_SAN_OTHERNAME; break; default: return gnutls_assert_val(GNUTLS_E_INVALID_REQUEST); } + ret = _gnutls_set_strdatum(&name->othername_oid, oid, + strlen(oid)); + if (ret < 0) { + gnutls_assert(); + _gnutls_free_datum(&name->san); + return ret; + } + name->type = GNUTLS_SAN_OTHERNAME; gnutls_free(san->data); }