summaryrefslogtreecommitdiff
path: root/src/plugins/auth-pam/utils.c
diff options
context:
space:
mode:
authorAlberto Gonzalez Iniesta <agi@inittab.org>2016-12-27 18:25:47 +0100
committerAlberto Gonzalez Iniesta <agi@inittab.org>2016-12-27 18:25:47 +0100
commit79f3537f69e125f19f59c36aa090120a63186a54 (patch)
tree2089a3b7dac990841dbc2e4d9b2f535b82dbb0af /src/plugins/auth-pam/utils.c
parentf2137fedb30cb87448eb03b2f288920df6187571 (diff)
parent3a2bbdb05ca6a6996e424c9fb225cb0d53804125 (diff)
Merge tag 'upstream/2.4.0'
Upstream version 2.4.0
Diffstat (limited to 'src/plugins/auth-pam/utils.c')
-rw-r--r--src/plugins/auth-pam/utils.c102
1 files changed, 56 insertions, 46 deletions
diff --git a/src/plugins/auth-pam/utils.c b/src/plugins/auth-pam/utils.c
index 4f2bec1..4f8fb0a 100644
--- a/src/plugins/auth-pam/utils.c
+++ b/src/plugins/auth-pam/utils.c
@@ -5,7 +5,7 @@
* packet encryption, packet authentication, and
* packet compression.
*
- * Copyright (C) 2002-2010 OpenVPN Technologies, Inc. <sales@openvpn.net>
+ * Copyright (C) 2002-2017 OpenVPN Technologies, Inc. <sales@openvpn.net>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2
@@ -43,71 +43,81 @@
char *
searchandreplace(const char *tosearch, const char *searchfor, const char *replacewith)
{
- if (!tosearch || !searchfor || !replacewith) return NULL;
+ if (!tosearch || !searchfor || !replacewith)
+ {
+ return NULL;
+ }
- size_t tosearchlen = strlen(tosearch);
- size_t replacewithlen = strlen(replacewith);
- size_t templen = tosearchlen * replacewithlen;
+ size_t tosearchlen = strlen(tosearch);
+ size_t replacewithlen = strlen(replacewith);
+ size_t templen = tosearchlen * replacewithlen;
- if (tosearchlen == 0 || strlen(searchfor) == 0 || replacewithlen == 0) {
- return NULL;
- }
+ if (tosearchlen == 0 || strlen(searchfor) == 0 || replacewithlen == 0)
+ {
+ return NULL;
+ }
- bool is_potential_integer_overflow = (templen == SIZE_MAX) || (templen / tosearchlen != replacewithlen);
+ bool is_potential_integer_overflow = (templen == SIZE_MAX) || (templen / tosearchlen != replacewithlen);
- if (is_potential_integer_overflow) {
- return NULL;
- }
+ if (is_potential_integer_overflow)
+ {
+ return NULL;
+ }
- // state: all parameters are valid
+ /* state: all parameters are valid */
- const char *searching=tosearch;
- char *scratch;
+ const char *searching = tosearch;
+ char *scratch;
- char temp[templen+1];
- temp[0]=0;
+ char temp[templen+1];
+ temp[0] = 0;
- scratch = strstr(searching,searchfor);
- if (!scratch) return strdup(tosearch);
+ scratch = strstr(searching,searchfor);
+ if (!scratch)
+ {
+ return strdup(tosearch);
+ }
- while (scratch) {
- strncat(temp,searching,scratch-searching);
- strcat(temp,replacewith);
+ while (scratch) {
+ strncat(temp,searching,scratch-searching);
+ strcat(temp,replacewith);
- searching=scratch+strlen(searchfor);
- scratch = strstr(searching,searchfor);
- }
- return strdup(temp);
+ searching = scratch+strlen(searchfor);
+ scratch = strstr(searching,searchfor);
+ }
+ return strdup(temp);
}
const char *
-get_env (const char *name, const char *envp[])
+get_env(const char *name, const char *envp[])
{
- if (envp)
+ if (envp)
{
- int i;
- const int namelen = strlen (name);
- for (i = 0; envp[i]; ++i)
- {
- if (!strncmp (envp[i], name, namelen))
- {
- const char *cp = envp[i] + namelen;
- if (*cp == '=')
- return cp + 1;
- }
- }
+ int i;
+ const int namelen = strlen(name);
+ for (i = 0; envp[i]; ++i)
+ {
+ if (!strncmp(envp[i], name, namelen))
+ {
+ const char *cp = envp[i] + namelen;
+ if (*cp == '=')
+ {
+ return cp + 1;
+ }
+ }
+ }
}
- return NULL;
+ return NULL;
}
int
-string_array_len (const char *array[])
+string_array_len(const char *array[])
{
- int i = 0;
- if (array)
+ int i = 0;
+ if (array)
{
- while (array[i])
- ++i;
+ while (array[i])
+ ++i;
}
- return i;
+ return i;
}