9d12795f87b63c2e39e87bff369182edd34677d3Robert Mustacchi * This file and its contents are supplied under the terms of the
9d12795f87b63c2e39e87bff369182edd34677d3Robert Mustacchi * Common Development and Distribution License ("CDDL"), version 1.0.
9d12795f87b63c2e39e87bff369182edd34677d3Robert Mustacchi * You may only use this file in accordance with the terms of version
9d12795f87b63c2e39e87bff369182edd34677d3Robert Mustacchi * 1.0 of the CDDL.
9d12795f87b63c2e39e87bff369182edd34677d3Robert Mustacchi * A full copy of the text of the CDDL should have accompanied this
9d12795f87b63c2e39e87bff369182edd34677d3Robert Mustacchi * source. A copy of the CDDL is also available via the Internet at
9d12795f87b63c2e39e87bff369182edd34677d3Robert Mustacchi * Copyright (c) 2015, Joyent, Inc.
9d12795f87b63c2e39e87bff369182edd34677d3Robert Mustacchi * Tests to make sure that a parent and child do not get the same arc4random
9d12795f87b63c2e39e87bff369182edd34677d3Robert Mustacchi * state across a fork. This source file is used to make two tests. One which
9d12795f87b63c2e39e87bff369182edd34677d3Robert Mustacchi * initializes the data in advance, one of which does not.
9d12795f87b63c2e39e87bff369182edd34677d3Robert Mustacchi fork_data = (arc4_fork_t *)mmap(NULL, sizeof (arc4_fork_t),
9d12795f87b63c2e39e87bff369182edd34677d3Robert Mustacchi PROT_READ | PROT_WRITE, MAP_SHARED | MAP_ANON, -1, 0);
9d12795f87b63c2e39e87bff369182edd34677d3Robert Mustacchi if (p == 0) {
9d12795f87b63c2e39e87bff369182edd34677d3Robert Mustacchi arc4random_buf(fork_data->af_cbuf, sizeof (fork_data->af_cbuf));
9d12795f87b63c2e39e87bff369182edd34677d3Robert Mustacchi arc4random_buf(fork_data->af_pbuf, sizeof (fork_data->af_pbuf));
9d12795f87b63c2e39e87bff369182edd34677d3Robert Mustacchi /* Now verify our data doesn't match */
9d12795f87b63c2e39e87bff369182edd34677d3Robert Mustacchi assert(fork_data->af_parent != fork_data->af_child);
9d12795f87b63c2e39e87bff369182edd34677d3Robert Mustacchi * For the buffer here, we're mostly concerned that they aren't somehow
9d12795f87b63c2e39e87bff369182edd34677d3Robert Mustacchi * getting the same stream.
9d12795f87b63c2e39e87bff369182edd34677d3Robert Mustacchi for (i = 0; i < sizeof (fork_data->af_pbuf); i++) {