a17dff0dc9d07cb9734943b1f593b856d17776b4Robert Mustacchi/*
a17dff0dc9d07cb9734943b1f593b856d17776b4Robert Mustacchi * This file and its contents are supplied under the terms of the
a17dff0dc9d07cb9734943b1f593b856d17776b4Robert Mustacchi * Common Development and Distribution License ("CDDL"), version 1.0.
a17dff0dc9d07cb9734943b1f593b856d17776b4Robert Mustacchi * You may only use this file in accordance with the terms of version
a17dff0dc9d07cb9734943b1f593b856d17776b4Robert Mustacchi * 1.0 of the CDDL.
a17dff0dc9d07cb9734943b1f593b856d17776b4Robert Mustacchi *
a17dff0dc9d07cb9734943b1f593b856d17776b4Robert Mustacchi * A full copy of the text of the CDDL should have accompanied this
a17dff0dc9d07cb9734943b1f593b856d17776b4Robert Mustacchi * source. A copy of the CDDL is also available via the Internet at
a17dff0dc9d07cb9734943b1f593b856d17776b4Robert Mustacchi * http://www.illumos.org/license/CDDL.
a17dff0dc9d07cb9734943b1f593b856d17776b4Robert Mustacchi */
a17dff0dc9d07cb9734943b1f593b856d17776b4Robert Mustacchi
a17dff0dc9d07cb9734943b1f593b856d17776b4Robert Mustacchi/*
a17dff0dc9d07cb9734943b1f593b856d17776b4Robert Mustacchi * Copyright 2015 Joyent, Inc.
a17dff0dc9d07cb9734943b1f593b856d17776b4Robert Mustacchi */
a17dff0dc9d07cb9734943b1f593b856d17776b4Robert Mustacchi
a17dff0dc9d07cb9734943b1f593b856d17776b4Robert Mustacchi/*
a17dff0dc9d07cb9734943b1f593b856d17776b4Robert Mustacchi * Regression test for illumos#5843.
a17dff0dc9d07cb9734943b1f593b856d17776b4Robert Mustacchi */
a17dff0dc9d07cb9734943b1f593b856d17776b4Robert Mustacchi
a17dff0dc9d07cb9734943b1f593b856d17776b4Robert Mustacchi#include <string.h>
a17dff0dc9d07cb9734943b1f593b856d17776b4Robert Mustacchi#include <stdlib.h>
a17dff0dc9d07cb9734943b1f593b856d17776b4Robert Mustacchi#include <sys/random.h>
a17dff0dc9d07cb9734943b1f593b856d17776b4Robert Mustacchi
a17dff0dc9d07cb9734943b1f593b856d17776b4Robert Mustacchi#define NTRIES 5
a17dff0dc9d07cb9734943b1f593b856d17776b4Robert Mustacchi#define NOFF 128
a17dff0dc9d07cb9734943b1f593b856d17776b4Robert Mustacchi#define NBYTES 223
a17dff0dc9d07cb9734943b1f593b856d17776b4Robert Mustacchi
a17dff0dc9d07cb9734943b1f593b856d17776b4Robert Mustacchiint
a17dff0dc9d07cb9734943b1f593b856d17776b4Robert Mustacchimain(void)
a17dff0dc9d07cb9734943b1f593b856d17776b4Robert Mustacchi{
a17dff0dc9d07cb9734943b1f593b856d17776b4Robert Mustacchi int i;
a17dff0dc9d07cb9734943b1f593b856d17776b4Robert Mustacchi char buf[1024];
a17dff0dc9d07cb9734943b1f593b856d17776b4Robert Mustacchi
a17dff0dc9d07cb9734943b1f593b856d17776b4Robert Mustacchi (void) memset(buf, 'a', sizeof (buf));
a17dff0dc9d07cb9734943b1f593b856d17776b4Robert Mustacchi
a17dff0dc9d07cb9734943b1f593b856d17776b4Robert Mustacchi /*
a17dff0dc9d07cb9734943b1f593b856d17776b4Robert Mustacchi * Try to go ahead and corrupt ourselves NTRIES times.
a17dff0dc9d07cb9734943b1f593b856d17776b4Robert Mustacchi */
a17dff0dc9d07cb9734943b1f593b856d17776b4Robert Mustacchi for (i = 0; i < NTRIES; i++) {
a17dff0dc9d07cb9734943b1f593b856d17776b4Robert Mustacchi (void) getrandom(buf + NOFF, NBYTES, 0);
a17dff0dc9d07cb9734943b1f593b856d17776b4Robert Mustacchi }
a17dff0dc9d07cb9734943b1f593b856d17776b4Robert Mustacchi
a17dff0dc9d07cb9734943b1f593b856d17776b4Robert Mustacchi for (i = 0; i < NOFF; i++) {
a17dff0dc9d07cb9734943b1f593b856d17776b4Robert Mustacchi if (buf[i] != 'a')
a17dff0dc9d07cb9734943b1f593b856d17776b4Robert Mustacchi abort();
a17dff0dc9d07cb9734943b1f593b856d17776b4Robert Mustacchi }
a17dff0dc9d07cb9734943b1f593b856d17776b4Robert Mustacchi
a17dff0dc9d07cb9734943b1f593b856d17776b4Robert Mustacchi for (i = NBYTES + NOFF; i < sizeof (buf); i++) {
a17dff0dc9d07cb9734943b1f593b856d17776b4Robert Mustacchi if (buf[i] != 'a')
a17dff0dc9d07cb9734943b1f593b856d17776b4Robert Mustacchi abort();
a17dff0dc9d07cb9734943b1f593b856d17776b4Robert Mustacchi }
a17dff0dc9d07cb9734943b1f593b856d17776b4Robert Mustacchi
a17dff0dc9d07cb9734943b1f593b856d17776b4Robert Mustacchi return (0);
a17dff0dc9d07cb9734943b1f593b856d17776b4Robert Mustacchi}