git: 37aef5973257 - stable/12 - libsa: cstyle cleanup for environment.c
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Fri, 08 Oct 2021 06:10:59 UTC
The branch stable/12 has been updated by kevans: URL: https://cgit.FreeBSD.org/src/commit/?id=37aef597325741d8b79174bd944eddf56db3c01b commit 37aef597325741d8b79174bd944eddf56db3c01b Author: Toomas Soome <tsoome@FreeBSD.org> AuthorDate: 2020-08-19 15:20:33 +0000 Commit: Kyle Evans <kevans@FreeBSD.org> CommitDate: 2021-10-08 05:24:26 +0000 libsa: cstyle cleanup for environment.c No functional changes. (cherry picked from commit 16aabe28c6e71f05e3520eb9209658fe61e7c28b) --- stand/libsa/environment.c | 237 +++++++++++++++++++++++----------------------- 1 file changed, 118 insertions(+), 119 deletions(-) diff --git a/stand/libsa/environment.c b/stand/libsa/environment.c index 36409cc0add1..167dcdb26bfa 100644 --- a/stand/libsa/environment.c +++ b/stand/libsa/environment.c @@ -47,12 +47,12 @@ struct env_var *environ = NULL; struct env_var * env_getenv(const char *name) { - struct env_var *ev; + struct env_var *ev; - for (ev = environ; ev != NULL; ev = ev->ev_next) - if (!strcmp(ev->ev_name, name)) - break; - return(ev); + for (ev = environ; ev != NULL; ev = ev->ev_next) + if (!strcmp(ev->ev_name, name)) + break; + return (ev); } /* @@ -65,160 +65,159 @@ env_getenv(const char *name) */ int env_setenv(const char *name, int flags, const void *value, - ev_sethook_t sethook, ev_unsethook_t unsethook) + ev_sethook_t sethook, ev_unsethook_t unsethook) { - struct env_var *ev, *curr, *last; - - if ((ev = env_getenv(name)) != NULL) { - /* - * If there's a set hook, let it do the work (unless we are working - * for one already. - */ - if ((ev->ev_sethook != NULL) && !(flags & EV_NOHOOK)) - return (ev->ev_sethook(ev, flags, value)); - - /* If there is data in the variable, discard it. */ - if (ev->ev_value != NULL && (ev->ev_flags & EV_DYNAMIC) != 0) - free(ev->ev_value); - ev->ev_value = NULL; - ev->ev_flags &= ~EV_DYNAMIC; - - } else { - - /* - * New variable; create and sort into list - */ - ev = malloc(sizeof(struct env_var)); - ev->ev_name = strdup(name); - ev->ev_value = NULL; - ev->ev_flags = 0; - /* hooks can only be set when the variable is instantiated */ - ev->ev_sethook = sethook; - ev->ev_unsethook = unsethook; - - /* Sort into list */ - ev->ev_prev = NULL; - ev->ev_next = NULL; - /* Search for the record to insert before */ - for (last = NULL, curr = environ; - curr != NULL; - last = curr, curr = curr->ev_next) { - - if (strcmp(ev->ev_name, curr->ev_name) < 0) { - if (curr->ev_prev) { - curr->ev_prev->ev_next = ev; - } else { - environ = ev; + struct env_var *ev, *curr, *last; + + if ((ev = env_getenv(name)) != NULL) { + /* + * If there's a set hook, let it do the work + * (unless we are working for one already). + */ + if ((ev->ev_sethook != NULL) && !(flags & EV_NOHOOK)) + return (ev->ev_sethook(ev, flags, value)); + + /* If there is data in the variable, discard it. */ + if (ev->ev_value != NULL && (ev->ev_flags & EV_DYNAMIC) != 0) + free(ev->ev_value); + ev->ev_value = NULL; + ev->ev_flags &= ~EV_DYNAMIC; + + } else { + + /* + * New variable; create and sort into list + */ + ev = malloc(sizeof(struct env_var)); + ev->ev_name = strdup(name); + ev->ev_value = NULL; + ev->ev_flags = 0; + /* hooks can only be set when the variable is instantiated */ + ev->ev_sethook = sethook; + ev->ev_unsethook = unsethook; + + /* Sort into list */ + ev->ev_prev = NULL; + ev->ev_next = NULL; + /* Search for the record to insert before */ + for (last = NULL, curr = environ; curr != NULL; + last = curr, curr = curr->ev_next) { + + if (strcmp(ev->ev_name, curr->ev_name) < 0) { + if (curr->ev_prev) { + curr->ev_prev->ev_next = ev; + } else { + environ = ev; + } + ev->ev_next = curr; + ev->ev_prev = curr->ev_prev; + curr->ev_prev = ev; + break; + } + } + if (curr == NULL) { + if (last == NULL) { + environ = ev; + } else { + last->ev_next = ev; + ev->ev_prev = last; + } } - ev->ev_next = curr; - ev->ev_prev = curr->ev_prev; - curr->ev_prev = ev; - break; - } } - if (curr == NULL) { - if (last == NULL) { - environ = ev; - } else { - last->ev_next = ev; - ev->ev_prev = last; - } + + /* If we have a new value, use it */ + if (flags & EV_VOLATILE) { + ev->ev_value = strdup(value); + ev->ev_flags |= EV_DYNAMIC; + } else { + ev->ev_value = (char *)value; + ev->ev_flags |= flags & EV_DYNAMIC; } - } - - /* If we have a new value, use it */ - if (flags & EV_VOLATILE) { - ev->ev_value = strdup(value); - ev->ev_flags |= EV_DYNAMIC; - } else { - ev->ev_value = (char *)value; - ev->ev_flags |= flags & EV_DYNAMIC; - } - - return(0); + + return (0); } /* coverity[ -tainted_string_return_content ] */ char * getenv(const char *name) { - struct env_var *ev; - - /* Set but no value gives empty string */ - if ((ev = env_getenv(name)) != NULL) { - if (ev->ev_value != NULL) - return(ev->ev_value); - return(""); - } - return(NULL); + struct env_var *ev; + + /* Set but no value gives empty string */ + if ((ev = env_getenv(name)) != NULL) { + if (ev->ev_value != NULL) + return (ev->ev_value); + return (""); + } + return (NULL); } int setenv(const char *name, const char *value, int overwrite) { - /* No guarantees about state, always assume volatile */ - if (overwrite || (env_getenv(name) == NULL)) - return(env_setenv(name, EV_VOLATILE, value, NULL, NULL)); - return(0); + /* No guarantees about state, always assume volatile */ + if (overwrite || (env_getenv(name) == NULL)) + return (env_setenv(name, EV_VOLATILE, value, NULL, NULL)); + return (0); } int putenv(char *string) { - char *value, *copy; - int result; - - copy = strdup(string); - if ((value = strchr(copy, '=')) != NULL) - *(value++) = 0; - result = setenv(copy, value, 1); - free(copy); - return(result); + char *value, *copy; + int result; + + copy = strdup(string); + if ((value = strchr(copy, '=')) != NULL) + *(value++) = 0; + result = setenv(copy, value, 1); + free(copy); + return (result); } int unsetenv(const char *name) { - struct env_var *ev; - int err; - - err = 0; - if ((ev = env_getenv(name)) == NULL) { - err = ENOENT; - } else { - if (ev->ev_unsethook != NULL) - err = ev->ev_unsethook(ev); - if (err == 0) { - env_discard(ev); + struct env_var *ev; + int err; + + err = 0; + if ((ev = env_getenv(name)) == NULL) { + err = ENOENT; + } else { + if (ev->ev_unsethook != NULL) + err = ev->ev_unsethook(ev); + if (err == 0) { + env_discard(ev); + } } - } - return(err); + return (err); } static void env_discard(struct env_var *ev) { - if (ev->ev_prev) - ev->ev_prev->ev_next = ev->ev_next; - if (ev->ev_next) - ev->ev_next->ev_prev = ev->ev_prev; - if (environ == ev) - environ = ev->ev_next; - free(ev->ev_name); - if (ev->ev_value != NULL && (ev->ev_flags & EV_DYNAMIC) != 0) - free(ev->ev_value); - free(ev); + if (ev->ev_prev) + ev->ev_prev->ev_next = ev->ev_next; + if (ev->ev_next) + ev->ev_next->ev_prev = ev->ev_prev; + if (environ == ev) + environ = ev->ev_next; + free(ev->ev_name); + if (ev->ev_value != NULL && (ev->ev_flags & EV_DYNAMIC) != 0) + free(ev->ev_value); + free(ev); } int env_noset(struct env_var *ev __unused, int flags __unused, const void *value __unused) { - return(EPERM); + return (EPERM); } int env_nounset(struct env_var *ev __unused) { - return(EPERM); + return (EPERM); }