100efb5e1SYuri Pankov.\" 200efb5e1SYuri Pankov.\" This file and its contents are supplied under the terms of the 300efb5e1SYuri Pankov.\" Common Development and Distribution License ("CDDL"), version 1.0. 400efb5e1SYuri Pankov.\" You may only use this file in accordance with the terms of version 500efb5e1SYuri Pankov.\" 1.0 of the CDDL. 600efb5e1SYuri Pankov.\" 700efb5e1SYuri Pankov.\" A full copy of the text of the CDDL should have accompanied this 800efb5e1SYuri Pankov.\" source. A copy of the CDDL is also available via the Internet at 900efb5e1SYuri Pankov.\" http://www.illumos.org/license/CDDL. 1000efb5e1SYuri Pankov.\" 1100efb5e1SYuri Pankov.\" 1200efb5e1SYuri Pankov.\" Copyright 2018 Nexenta Systems, Inc. 1300efb5e1SYuri Pankov.\" 1400efb5e1SYuri Pankov.Dd August 12, 2017 1500efb5e1SYuri Pankov.Dt MEMSET_S 3C 1600efb5e1SYuri Pankov.Os 1700efb5e1SYuri Pankov.Sh NAME 1800efb5e1SYuri Pankov.Nm memset_s 1900efb5e1SYuri Pankov.Nd copy a value to all bytes of a memory buffer 2000efb5e1SYuri Pankov.Sh LIBRARY 2100efb5e1SYuri Pankov.Lb libc 2200efb5e1SYuri Pankov.Sh SYNOPSIS 2300efb5e1SYuri Pankov.Fd #define __STDC_WANT_LIB_EXT1__ 1 2400efb5e1SYuri Pankov.In string.h 2500efb5e1SYuri Pankov.Ft errno_t 2600efb5e1SYuri Pankov.Fo memset_s 2700efb5e1SYuri Pankov.Fa "void *s" 2800efb5e1SYuri Pankov.Fa "rsize_t smax" 2900efb5e1SYuri Pankov.Fa "int c" 3000efb5e1SYuri Pankov.Fa "rsize_t n" 3100efb5e1SYuri Pankov.Fc 3200efb5e1SYuri Pankov.Sh DESCRIPTION 3300efb5e1SYuri PankovThe 3400efb5e1SYuri Pankov.Fn memset_s 3500efb5e1SYuri Pankovfunction copies the value of 3600efb5e1SYuri Pankov.Fa c 3700efb5e1SYuri Pankov.Po converted to an 3800efb5e1SYuri Pankov.Vt unsigned char 3900efb5e1SYuri Pankov.Pc 4000efb5e1SYuri Pankovinto each of the first 4100efb5e1SYuri Pankov.Fa n 4200efb5e1SYuri Pankovbytes of the memory buffer pointed to by 4300efb5e1SYuri Pankov.Fa s . 4400efb5e1SYuri Pankov.Pp 4500efb5e1SYuri PankovUnlike the 4600efb5e1SYuri Pankov.Xr memset 3C , 4700efb5e1SYuri Pankov.Fn memset_s 4800efb5e1SYuri Pankovis guaranteed to never be optimized away by the compiler. 4900efb5e1SYuri Pankov.Pp 5000efb5e1SYuri PankovThe 5100efb5e1SYuri Pankov.Fn memset_s 5200efb5e1SYuri Pankovfunction detects the following runtime-constraint violations: 5300efb5e1SYuri Pankov.Bl -enum 5400efb5e1SYuri Pankov.It 5500efb5e1SYuri Pankov.Fa s 5600efb5e1SYuri Pankovis a 5700efb5e1SYuri Pankov.Dv NULL 5800efb5e1SYuri Pankovpointer. 5900efb5e1SYuri Pankov.It 6000efb5e1SYuri Pankov.Fa smax 6100efb5e1SYuri Pankovor 6200efb5e1SYuri Pankov.Fa n 6300efb5e1SYuri Pankovis greater than 6400efb5e1SYuri Pankov.Dv RSIZE_MAX . 6500efb5e1SYuri Pankov.It 6600efb5e1SYuri Pankov.Fa n 6700efb5e1SYuri Pankovis greater than 6800efb5e1SYuri Pankov.Fa smax 6900efb5e1SYuri Pankov.Pq buffer overflow . 7000efb5e1SYuri Pankov.El 7100efb5e1SYuri Pankov.Pp 7200efb5e1SYuri PankovIf runtime-constraint violation is detected, and if 7300efb5e1SYuri Pankov.Fa s 7400efb5e1SYuri Pankovand 7500efb5e1SYuri Pankov.Fa smax 7600efb5e1SYuri Pankovare valid, the 7700efb5e1SYuri Pankov.Fn memset_s 7800efb5e1SYuri Pankovfunction copies the value of 7900efb5e1SYuri Pankov.Fa c 8000efb5e1SYuri Pankov.Po converted to an 8100efb5e1SYuri Pankov.Vt unsigned char 8200efb5e1SYuri Pankov.Pc 8300efb5e1SYuri Pankovinto each of the first 8400efb5e1SYuri Pankov.Fa smax 8500efb5e1SYuri Pankovbytes of the memory buffer pointed to by 8600efb5e1SYuri Pankov.Fa s 8700efb5e1SYuri Pankovbefore calling the runtime-constraint handler. 8800efb5e1SYuri Pankov.Sh RETURN VALUES 8900efb5e1SYuri PankovThe 9000efb5e1SYuri Pankov.Fn memset_s 9100efb5e1SYuri Pankovfunction returns 0 if there was no runtime-constraint violation. 9200efb5e1SYuri PankovOtherwise, a non-zero value is returned. 9300efb5e1SYuri Pankov.Sh INTERFACE STABILITY 9400efb5e1SYuri Pankov.Sy Standard 9500efb5e1SYuri Pankov.Sh MT-LEVEL 9600efb5e1SYuri Pankov.Sy Safe 9700efb5e1SYuri Pankov.Sh SEE ALSO 9800efb5e1SYuri Pankov.Xr memset 3C , 99*9f17ecf0SPeter Tribble.Xr set_constraint_handler_s 3C 10000efb5e1SYuri Pankov.Sh STANDARDS 10100efb5e1SYuri PankovThe 10200efb5e1SYuri Pankov.Fn memset_s 10300efb5e1SYuri Pankovfunction conforms to 10400efb5e1SYuri Pankov.St -isoC-2011 . 105