mirror of
git://anongit.mindrot.org/openssh.git
synced 2024-11-27 14:44:21 +08:00
b0fb6872ed
[atomicio.c auth-bsdauth.c auth-chall.c auth-krb5.c auth-options.c] [auth-pam.c auth-passwd.c auth-rh-rsa.c auth-rhosts.c auth-rsa.c] [auth-shadow.c auth-skey.c auth.c auth1.c auth2-chall.c] [auth2-hostbased.c auth2-kbdint.c auth2-none.c auth2-passwd.c] [auth2-pubkey.c auth2.c authfd.c authfile.c bufaux.c buffer.c] [canohost.c channels.c cipher-3des1.c cipher-acss.c cipher-aes.c] [cipher-bf1.c cipher-ctr.c cipher.c cleanup.c clientloop.c compat.c] [compress.c deattack.c dh.c dispatch.c dns.c entropy.c fatal.c] [groupaccess.c hostfile.c includes.h kex.c kexdh.c kexdhc.c] [kexdhs.c kexgex.c kexgexc.c kexgexs.c key.c log.c loginrec.c] [loginrec.h logintest.c mac.c match.c md-sha256.c md5crypt.c misc.c] [monitor.c monitor_fdpass.c monitor_mm.c monitor_wrap.c msg.c] [nchan.c packet.c progressmeter.c readconf.c readpass.c rsa.c] [scard.c scp.c servconf.c serverloop.c session.c sftp-client.c] [sftp-common.c sftp-glob.c sftp-server.c sftp.c ssh-add.c] [ssh-agent.c ssh-dss.c ssh-keygen.c ssh-keyscan.c ssh-keysign.c] [ssh-rand-helper.c ssh-rsa.c ssh.c sshconnect.c sshconnect1.c] [sshconnect2.c sshd.c sshlogin.c sshpty.c sshtty.c ttymodes.c] [uidswap.c uuencode.c xmalloc.c openbsd-compat/bsd-arc4random.c] [openbsd-compat/bsd-closefrom.c openbsd-compat/bsd-cygwin_util.c] [openbsd-compat/bsd-getpeereid.c openbsd-compat/bsd-misc.c] [openbsd-compat/bsd-nextstep.c openbsd-compat/bsd-snprintf.c] [openbsd-compat/bsd-waitpid.c openbsd-compat/fake-rfc2553.c] RCSID() can die
68 lines
1.4 KiB
C
68 lines
1.4 KiB
C
/*
|
|
* Author: Tatu Ylonen <ylo@cs.hut.fi>
|
|
* Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
|
|
* All rights reserved
|
|
* Versions of malloc and friends that check their results, and never return
|
|
* failure (they call fatal if they encounter an error).
|
|
*
|
|
* As far as I am concerned, the code I have written for this software
|
|
* can be used freely for any purpose. Any derived versions of this
|
|
* software must be clearly marked as such, and if the derived work is
|
|
* incompatible with the protocol description in the RFC file, it must be
|
|
* called by a name other than "ssh" or "Secure Shell".
|
|
*/
|
|
|
|
#include "includes.h"
|
|
|
|
#include "xmalloc.h"
|
|
#include "log.h"
|
|
|
|
void *
|
|
xmalloc(size_t size)
|
|
{
|
|
void *ptr;
|
|
|
|
if (size == 0)
|
|
fatal("xmalloc: zero size");
|
|
ptr = malloc(size);
|
|
if (ptr == NULL)
|
|
fatal("xmalloc: out of memory (allocating %lu bytes)", (u_long) size);
|
|
return ptr;
|
|
}
|
|
|
|
void *
|
|
xrealloc(void *ptr, size_t new_size)
|
|
{
|
|
void *new_ptr;
|
|
|
|
if (new_size == 0)
|
|
fatal("xrealloc: zero size");
|
|
if (ptr == NULL)
|
|
new_ptr = malloc(new_size);
|
|
else
|
|
new_ptr = realloc(ptr, new_size);
|
|
if (new_ptr == NULL)
|
|
fatal("xrealloc: out of memory (new_size %lu bytes)", (u_long) new_size);
|
|
return new_ptr;
|
|
}
|
|
|
|
void
|
|
xfree(void *ptr)
|
|
{
|
|
if (ptr == NULL)
|
|
fatal("xfree: NULL pointer given as argument");
|
|
free(ptr);
|
|
}
|
|
|
|
char *
|
|
xstrdup(const char *str)
|
|
{
|
|
size_t len;
|
|
char *cp;
|
|
|
|
len = strlen(str) + 1;
|
|
cp = xmalloc(len);
|
|
strlcpy(cp, str, len);
|
|
return cp;
|
|
}
|