.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.\" $OpenBSD: malloc.3,v 1.108 2017/03/29 17:38:37 otto Exp $
+.\" $OpenBSD: malloc.3,v 1.109 2017/04/06 17:00:52 otto Exp $
.\"
-.Dd $Mdocdate: March 29 2017 $
+.Dd $Mdocdate: April 6 2017 $
.Dt MALLOC 3
.Os
.Sh NAME
.Er ENOMEM .
.Pp
If
-.Fa size
-or
.Fa nmemb
+or
+.Fa size
is equal to 0, a unique pointer to an access protected,
zero sized object is returned.
Access via this pointer will generate a
if (size && num > SIZE_MAX / size)
errc(1, EOVERFLOW, "overflow");
-if ((p = malloc(size * num)) == NULL)
+if ((p = malloc(num * size)) == NULL)
err(1, NULL);
.Ed
.Pp
if (size && num > INT_MAX / size)
errc(1, EOVERFLOW, "overflow");
-if ((p = malloc(size * num)) == NULL)
+if ((p = malloc(num * size)) == NULL)
err(1, NULL);
.Ed
.Pp
.St -ansiC .
.Pp
If
-.Fa size
-or
.Fa nmemb
+or
+.Fa size
are 0, the return value is implementation defined;
other conforming implementations may return
.Dv NULL