1*5184Sek110237 /*
2*5184Sek110237  * CDDL HEADER START
3*5184Sek110237  *
4*5184Sek110237  * The contents of this file are subject to the terms of the
5*5184Sek110237  * Common Development and Distribution License (the "License").
6*5184Sek110237  * You may not use this file except in compliance with the License.
7*5184Sek110237  *
8*5184Sek110237  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9*5184Sek110237  * or http://www.opensolaris.org/os/licensing.
10*5184Sek110237  * See the License for the specific language governing permissions
11*5184Sek110237  * and limitations under the License.
12*5184Sek110237  *
13*5184Sek110237  * When distributing Covered Code, include this CDDL HEADER in each
14*5184Sek110237  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15*5184Sek110237  * If applicable, add the following below this CDDL HEADER, with the
16*5184Sek110237  * fields enclosed by brackets "[]" replaced with your own identifying
17*5184Sek110237  * information: Portions Copyright [yyyy] [name of copyright owner]
18*5184Sek110237  *
19*5184Sek110237  * CDDL HEADER END
20*5184Sek110237  */
21*5184Sek110237 /*
22*5184Sek110237  * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
23*5184Sek110237  * Use is subject to license terms.
24*5184Sek110237  */
25*5184Sek110237 
26*5184Sek110237 #pragma ident	"%Z%%M%	%I%	%E% SMI"
27*5184Sek110237 
28*5184Sek110237 #include <limits.h>
29*5184Sek110237 #include <string.h>
30*5184Sek110237 #include <stdlib.h>
31*5184Sek110237 #include <stdarg.h>
32*5184Sek110237 #include <stdio.h>
33*5184Sek110237 #include <errno.h>
34*5184Sek110237 #ifdef HAVE_STDINT_H
35*5184Sek110237 #include <stdint.h>
36*5184Sek110237 #endif
37*5184Sek110237 #include "utils.h"
38*5184Sek110237 #include "parsertypes.h"
39*5184Sek110237 
40*5184Sek110237 /*
41*5184Sek110237  * For now, just two routines: one to allocate a string in shared
42*5184Sek110237  * memory, and one to get the final file or directory name from a
43*5184Sek110237  * supplied pathname.
44*5184Sek110237  *
45*5184Sek110237  */
46*5184Sek110237 
47*5184Sek110237 
48*5184Sek110237 /*
49*5184Sek110237  * Allocates space for a new string of the same length as
50*5184Sek110237  * the supplied string "str". Copies the old string into
51*5184Sek110237  * the new string and returns a pointer to the new string.
52*5184Sek110237  * Returns NULL if memory allocation for the new string fails.
53*5184Sek110237  */
54*5184Sek110237 char *
55*5184Sek110237 fb_stralloc(char *str)
56*5184Sek110237 {
57*5184Sek110237 	char *newstr;
58*5184Sek110237 
59*5184Sek110237 	if ((newstr = malloc(strlen(str) + 1)) == NULL)
60*5184Sek110237 		return (NULL);
61*5184Sek110237 	(void) strcpy(newstr, str);
62*5184Sek110237 	return (newstr);
63*5184Sek110237 }
64