1/*- 2 * Copyright (c) 1992, 1993, 1994 3 * The Regents of the University of California. All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions 7 * are met: 8 * 1. Redistributions of source code must retain the above copyright --- 19 unchanged lines hidden (view full) --- 28 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 29 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 30 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 31 * SUCH DAMAGE. 32 */ 33 34#include <sys/cdefs.h> 35 |
36__FBSDID("$FreeBSD: head/bin/ps/fmt.c 97978 2002-06-07 01:14:05Z jmallett $"); |
37 38#if 0 39#ifndef lint 40static char sccsid[] = "@(#)fmt.c 8.4 (Berkeley) 4/15/94"; 41#endif 42#endif 43 44#include <sys/types.h> --- 20 unchanged lines hidden (view full) --- 65 static size_t buf_size; 66 size_t len; 67 char **p, *dst, *src; 68 static char *buf = NULL; 69 70 if (buf == NULL) { 71 if ((arg_max = sysconf(_SC_ARG_MAX)) == -1) 72 errx(1, "sysconf _SC_ARG_MAX failed"); |
73 if (arg_max >= LONG_MAX / 4 || 4 * arg_max + 1 > SIZE_MAX) |
74 errx(1, "sysconf _SC_ARG_MAX preposterously large"); 75 buf_size = 4 * arg_max + 1; 76 if ((buf = malloc(buf_size)) == NULL) 77 errx(1, "malloc failed"); 78 } 79 80 if (*argv == NULL) { 81 buf[0] = '\0'; --- 55 unchanged lines hidden --- |