aboutsummaryrefslogtreecommitdiffstats
path: root/crypto/conf
diff options
context:
space:
mode:
authorRichard Levitte <levitte@openssl.org>2005-09-28 18:02:41 +0000
committerRichard Levitte <levitte@openssl.org>2005-09-28 18:02:41 +0000
commit23acb0eeb2ec89cb3d673dd0fb04838d83b13a1a (patch)
tree50c0eaf6cb842d25dc745e6f3773f474441205a7 /crypto/conf
parentbfa4b8c5abe3660ab3f5c4d28af4b350abc8c2cb (diff)
downloadopenssl-23acb0eeb2ec89cb3d673dd0fb04838d83b13a1a.tar.gz
Change a comment so it corresponds to reality. Put back a character that
was previously replaced with a NUL for parsing purposes. This seems to fix a very weird parsing bug involving two variable references in the same value.
Diffstat (limited to 'crypto/conf')
-rw-r--r--crypto/conf/conf_def.c13
1 files changed, 9 insertions, 4 deletions
diff --git a/crypto/conf/conf_def.c b/crypto/conf/conf_def.c
index 996a0999ac..8083a009d7 100644
--- a/crypto/conf/conf_def.c
+++ b/crypto/conf/conf_def.c
@@ -613,13 +613,13 @@ static int str_copy(CONF *conf, char *section, char **pto, char *from)
e++;
}
/* So at this point we have
- * ns which is the start of the name string which is
+ * np which is the start of the name string which is
* '\0' terminated.
- * cs which is the start of the section string which is
+ * cp which is the start of the section string which is
* '\0' terminated.
* e is the 'next point after'.
- * r and s are the chars replaced by the '\0'
- * rp and sp is where 'r' and 's' came from.
+ * r and rr are the chars replaced by the '\0'
+ * rp and rrp is where 'r' and 'rr' came from.
*/
p=_CONF_get_string(conf,cp,np);
if (rrp != NULL) *rrp=rr;
@@ -638,6 +638,11 @@ static int str_copy(CONF *conf, char *section, char **pto, char *from)
points at. /RL */
len -= e-from;
from=e;
+
+ /* In case there were no braces or parenthesis around
+ the variable reference, we have to put back the
+ character that was replaced with a '\0'. /RL */
+ *rp = r;
}
else
buf->data[to++]= *(from++);