svn commit: r240258 - stable/9/sys/cddl/compat/opensolaris/sys

Martin Matuska mm at FreeBSD.org
Sun Sep 9 07:38:16 UTC 2012


Author: mm
Date: Sun Sep  9 07:38:15 2012
New Revision: 240258
URL: http://svn.freebsd.org/changeset/base/240258

Log:
  MFC r240162:
  Make r230454 more readable and vendor-like.
  
  PR:	kern/171380

Modified:
  stable/9/sys/cddl/compat/opensolaris/sys/sid.h
Directory Properties:
  stable/9/sys/   (props changed)

Modified: stable/9/sys/cddl/compat/opensolaris/sys/sid.h
==============================================================================
--- stable/9/sys/cddl/compat/opensolaris/sys/sid.h	Sun Sep  9 07:23:15 2012	(r240257)
+++ stable/9/sys/cddl/compat/opensolaris/sys/sid.h	Sun Sep  9 07:38:15 2012	(r240258)
@@ -30,7 +30,8 @@
 #define	_OPENSOLARIS_SYS_SID_H_
 
 typedef struct ksiddomain {
-	char	kd_name[1];	/* Domain part of SID */
+	char	*kd_name;	/* Domain part of SID */
+	uint_t	kd_len;
 } ksiddomain_t;
 typedef void	ksid_t;
 
@@ -38,8 +39,12 @@ static __inline ksiddomain_t *
 ksid_lookupdomain(const char *domain)
 {
 	ksiddomain_t *kd;
+	size_t len;
 
-	kd = kmem_alloc(sizeof(*kd) + strlen(domain), KM_SLEEP);
+	len = strlen(domain) + 1;
+	kd = kmem_alloc(sizeof(*kd), KM_SLEEP);
+	kd->kd_len = (uint_t)len;
+	kd->kd_name = kmem_alloc(len, KM_SLEEP);
 	strcpy(kd->kd_name, domain);
 	return (kd);
 }
@@ -48,6 +53,7 @@ static __inline void
 ksiddomain_rele(ksiddomain_t *kd)
 {
 
+	kmem_free(kd->kd_name, kd->kd_len);
 	kmem_free(kd, sizeof(*kd));
 }
 


More information about the svn-src-stable-9 mailing list