Re: [PATCH] Add compat/setenv.c, use in git.c.

From: H. Peter Anvin <hpa@zytor.com>
Date: 2005-12-05 08:07:42
Jason Riedy wrote:
> +
> +int gitsetenv(const char *name, const char *value, int replace)
> +{
> +	int out;
> +	size_t namelen, valuelen;
> +	char *envstr;
> +
> +	if (!name || !value) return -1;
> +	if (!replace) {
> +		char *oldval = NULL;
> +		oldval = getenv(name);
> +		if (oldval) return 0;
> +	}
> +
> +	namelen = strlen(name);
> +	valuelen = strlen(value);
> +	envstr = malloc((namelen + valuelen + 2) * sizeof(char));
> +	if (!envstr) return -1;
> +
> +	memcpy(envstr, name, namelen);
> +	envstr[namelen] = '=';
> +	memcpy(envstr + namelen + 1, value, valuelen);
> +	envstr[namelen + valuelen + 1] = 0;
> +
> +	out = putenv(envstr);
> +
> +	free(envstr);
> +	return out;
> +}

Wouldn't this be a good case for using alloca()?

	-hpa
-
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Received on Mon Dec 05 08:08:19 2005

This archive was generated by hypermail 2.1.8 : 2005-12-05 08:08:25 EST