diff --git a/gtests/net/packetdrill/wire_client.c b/gtests/net/packetdrill/wire_client.c
index 6d1194b35eeb8e195a20699cf179d51beb67a663..b47c54f8deb868faf79e44c79361ac47eb4589b6 100644
--- a/gtests/net/packetdrill/wire_client.c
+++ b/gtests/net/packetdrill/wire_client.c
@@ -227,7 +227,7 @@ static void wire_client_receive_packets_done(struct wire_client *wire_client)
 		/* Die with the error message from the server, which
 		 * is a C string following the fixed "done" message.
 		 */
-		die("%s", (char *)(buf + sizeof(done)));
+		die("%s", (char *)buf + sizeof(done));
 	} else if (ntohl(done.num_events) != wire_client->num_events) {
 		char *msg = NULL;
 		asprintf(&msg, "bad wire server: bad message count: "
diff --git a/gtests/net/packetdrill/wire_conn.c b/gtests/net/packetdrill/wire_conn.c
index 1302cbdd7fe5022db531467eef0c3ed6db26f57b..5c744a5627fd896252ce9f4403f199a3af944e58 100644
--- a/gtests/net/packetdrill/wire_conn.c
+++ b/gtests/net/packetdrill/wire_conn.c
@@ -179,7 +179,7 @@ static int write_bytes(struct wire_conn *conn,
 		}
 		assert(bytes_written <= buf_len);
 		buf_len -= bytes_written;
-		buf += bytes_written;
+		buf = (char *)buf + bytes_written;
 	}
 	return STATUS_OK;
 }
@@ -223,7 +223,7 @@ static int read_bytes(struct wire_conn *conn,
 		}
 		assert(bytes_read <= buf_len);
 		buf_len -= bytes_read;
-		buf += bytes_read;
+		buf = (char *)buf + bytes_read;
 	}
 	return STATUS_OK;
 }