components/trousers/patches/tspi_rpc_tcstp_rpc.c.patch
author Craig Mohrman <craig.mohrman@oracle.com>
Thu, 04 Aug 2016 08:26:36 -0700
changeset 6548 24913c16931e
parent 5941 db8aa9865e9f
permissions -rw-r--r--
PSARC/2016/303 enable rsyslog as default Solaris logger 24362425 rsyslog should degrade service if syslog.conf has been modified
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
5941
db8aa9865e9f 15776792 Upgrade TrouSerS TPM library to 0.3.13
Dan Anderson <dan.anderson@oracle.com>
parents: 777
diff changeset
     1
# Add ability to connect to UNIX socket and make it the default.
db8aa9865e9f 15776792 Upgrade TrouSerS TPM library to 0.3.13
Dan Anderson <dan.anderson@oracle.com>
parents: 777
diff changeset
     2
# Patch suitable for upstream use.
db8aa9865e9f 15776792 Upgrade TrouSerS TPM library to 0.3.13
Dan Anderson <dan.anderson@oracle.com>
parents: 777
diff changeset
     3
# This change was implemented in-house.
db8aa9865e9f 15776792 Upgrade TrouSerS TPM library to 0.3.13
Dan Anderson <dan.anderson@oracle.com>
parents: 777
diff changeset
     4
#
db8aa9865e9f 15776792 Upgrade TrouSerS TPM library to 0.3.13
Dan Anderson <dan.anderson@oracle.com>
parents: 777
diff changeset
     5
--- src/tspi/rpc/tcstp/rpc.c	2014-04-24 11:05:44.000000000 -0700
db8aa9865e9f 15776792 Upgrade TrouSerS TPM library to 0.3.13
Dan Anderson <dan.anderson@oracle.com>
parents: 777
diff changeset
     6
+++ src/tspi/rpc/tcstp/rpc.c	2016-04-22 15:08:53.058153900 -0700
db8aa9865e9f 15776792 Upgrade TrouSerS TPM library to 0.3.13
Dan Anderson <dan.anderson@oracle.com>
parents: 777
diff changeset
     7
@@ -477,6 +477,37 @@
db8aa9865e9f 15776792 Upgrade TrouSerS TPM library to 0.3.13
Dan Anderson <dan.anderson@oracle.com>
parents: 777
diff changeset
     8
 		goto exit;
db8aa9865e9f 15776792 Upgrade TrouSerS TPM library to 0.3.13
Dan Anderson <dan.anderson@oracle.com>
parents: 777
diff changeset
     9
 	}
777
e2e604cdbd6a 7123028 Problem with crypto/tss
Dan Anderson <dan.anderson@oracle.com>
parents:
diff changeset
    10
 
5941
db8aa9865e9f 15776792 Upgrade TrouSerS TPM library to 0.3.13
Dan Anderson <dan.anderson@oracle.com>
parents: 777
diff changeset
    11
+	if ((port_str == NULL) || (strlen(port_str) == 0) ||
db8aa9865e9f 15776792 Upgrade TrouSerS TPM library to 0.3.13
Dan Anderson <dan.anderson@oracle.com>
parents: 777
diff changeset
    12
+	    (strcmp(port_str, "0") == 0)) { /* use UNIX socket (default) */
db8aa9865e9f 15776792 Upgrade TrouSerS TPM library to 0.3.13
Dan Anderson <dan.anderson@oracle.com>
parents: 777
diff changeset
    13
+		struct sockaddr_un sock_addr;
db8aa9865e9f 15776792 Upgrade TrouSerS TPM library to 0.3.13
Dan Anderson <dan.anderson@oracle.com>
parents: 777
diff changeset
    14
+
db8aa9865e9f 15776792 Upgrade TrouSerS TPM library to 0.3.13
Dan Anderson <dan.anderson@oracle.com>
parents: 777
diff changeset
    15
+		*sd = socket(PF_UNIX, SOCK_STREAM, 0);
db8aa9865e9f 15776792 Upgrade TrouSerS TPM library to 0.3.13
Dan Anderson <dan.anderson@oracle.com>
parents: 777
diff changeset
    16
+		if (*sd == -1) {
777
e2e604cdbd6a 7123028 Problem with crypto/tss
Dan Anderson <dan.anderson@oracle.com>
parents:
diff changeset
    17
+			LogError("socket(PF_UNIX): %s", strerror(errno));
e2e604cdbd6a 7123028 Problem with crypto/tss
Dan Anderson <dan.anderson@oracle.com>
parents:
diff changeset
    18
+			result = TSPERR(TSS_E_COMM_FAILURE);
5941
db8aa9865e9f 15776792 Upgrade TrouSerS TPM library to 0.3.13
Dan Anderson <dan.anderson@oracle.com>
parents: 777
diff changeset
    19
+			return (result);
777
e2e604cdbd6a 7123028 Problem with crypto/tss
Dan Anderson <dan.anderson@oracle.com>
parents:
diff changeset
    20
+		}
5941
db8aa9865e9f 15776792 Upgrade TrouSerS TPM library to 0.3.13
Dan Anderson <dan.anderson@oracle.com>
parents: 777
diff changeset
    21
+
db8aa9865e9f 15776792 Upgrade TrouSerS TPM library to 0.3.13
Dan Anderson <dan.anderson@oracle.com>
parents: 777
diff changeset
    22
+		memset(&sock_addr, 0, sizeof(sock_addr));
db8aa9865e9f 15776792 Upgrade TrouSerS TPM library to 0.3.13
Dan Anderson <dan.anderson@oracle.com>
parents: 777
diff changeset
    23
+		sock_addr.sun_family = AF_UNIX;
db8aa9865e9f 15776792 Upgrade TrouSerS TPM library to 0.3.13
Dan Anderson <dan.anderson@oracle.com>
parents: 777
diff changeset
    24
+		strncpy(sock_addr.sun_path, TCSD_DEFAULT_SOCKET,
db8aa9865e9f 15776792 Upgrade TrouSerS TPM library to 0.3.13
Dan Anderson <dan.anderson@oracle.com>
parents: 777
diff changeset
    25
+		    sizeof(sock_addr.sun_path));
777
e2e604cdbd6a 7123028 Problem with crypto/tss
Dan Anderson <dan.anderson@oracle.com>
parents:
diff changeset
    26
+
e2e604cdbd6a 7123028 Problem with crypto/tss
Dan Anderson <dan.anderson@oracle.com>
parents:
diff changeset
    27
+		LogDebug("Connecting to UNIX Domain socket %s",
5941
db8aa9865e9f 15776792 Upgrade TrouSerS TPM library to 0.3.13
Dan Anderson <dan.anderson@oracle.com>
parents: 777
diff changeset
    28
+		    TCSD_DEFAULT_SOCKET);
777
e2e604cdbd6a 7123028 Problem with crypto/tss
Dan Anderson <dan.anderson@oracle.com>
parents:
diff changeset
    29
+
5941
db8aa9865e9f 15776792 Upgrade TrouSerS TPM library to 0.3.13
Dan Anderson <dan.anderson@oracle.com>
parents: 777
diff changeset
    30
+		if (connect(*sd, (struct sockaddr *) &sock_addr,
db8aa9865e9f 15776792 Upgrade TrouSerS TPM library to 0.3.13
Dan Anderson <dan.anderson@oracle.com>
parents: 777
diff changeset
    31
+		    sizeof (sock_addr))) {
777
e2e604cdbd6a 7123028 Problem with crypto/tss
Dan Anderson <dan.anderson@oracle.com>
parents:
diff changeset
    32
+			LogError("connect: %s", strerror(errno));
e2e604cdbd6a 7123028 Problem with crypto/tss
Dan Anderson <dan.anderson@oracle.com>
parents:
diff changeset
    33
+			result = TSPERR(TSS_E_COMM_FAILURE);
5941
db8aa9865e9f 15776792 Upgrade TrouSerS TPM library to 0.3.13
Dan Anderson <dan.anderson@oracle.com>
parents: 777
diff changeset
    34
+			return (result);
777
e2e604cdbd6a 7123028 Problem with crypto/tss
Dan Anderson <dan.anderson@oracle.com>
parents:
diff changeset
    35
+		}
e2e604cdbd6a 7123028 Problem with crypto/tss
Dan Anderson <dan.anderson@oracle.com>
parents:
diff changeset
    36
+
5941
db8aa9865e9f 15776792 Upgrade TrouSerS TPM library to 0.3.13
Dan Anderson <dan.anderson@oracle.com>
parents: 777
diff changeset
    37
+		return (TSS_SUCCESS);
db8aa9865e9f 15776792 Upgrade TrouSerS TPM library to 0.3.13
Dan Anderson <dan.anderson@oracle.com>
parents: 777
diff changeset
    38
+	} 
777
e2e604cdbd6a 7123028 Problem with crypto/tss
Dan Anderson <dan.anderson@oracle.com>
parents:
diff changeset
    39
+
5941
db8aa9865e9f 15776792 Upgrade TrouSerS TPM library to 0.3.13
Dan Anderson <dan.anderson@oracle.com>
parents: 777
diff changeset
    40
+	/* Use TCP/IP socket */
777
e2e604cdbd6a 7123028 Problem with crypto/tss
Dan Anderson <dan.anderson@oracle.com>
parents:
diff changeset
    41
+
5941
db8aa9865e9f 15776792 Upgrade TrouSerS TPM library to 0.3.13
Dan Anderson <dan.anderson@oracle.com>
parents: 777
diff changeset
    42
 	LogDebug("Retrieving address information from host: %s", (char *)hte->hostname);
db8aa9865e9f 15776792 Upgrade TrouSerS TPM library to 0.3.13
Dan Anderson <dan.anderson@oracle.com>
parents: 777
diff changeset
    43
 	rv = getaddrinfo((char *)hte->hostname, port_str,
db8aa9865e9f 15776792 Upgrade TrouSerS TPM library to 0.3.13
Dan Anderson <dan.anderson@oracle.com>
parents: 777
diff changeset
    44
 			&hints, &res);