Browse code

When parsing '--setenv opt xx ..' make sure a third parameter is present

When no parameters are present, set it to "setenv opt" to trigger a
descriptive error message. And, thus get rid of the pesky NULL pointer
dereferencing.

Trac: #779

Signed-off-by: Selva Nair <selva.nair@gmail.com>
Acked-by: Gert Doering <gert@greenie.muc.de>
Message-Id: <1480470794-6349-1-git-send-email-selva.nair@gmail.com>
URL: https://www.mail-archive.com/openvpn-devel@lists.sourceforge.net/msg13311.html
Signed-off-by: Gert Doering <gert@greenie.muc.de>
(cherry picked from commit 997795353916ffcb413a2da02dc7f210fd621954)

Selva Nair authored on 2016/11/30 10:53:14
Showing 1 changed files
... ...
@@ -4215,6 +4215,8 @@ add_option (struct options *options,
4215 4215
    */
4216 4216
   if (streq (p[0], "setenv") && p[1] && streq (p[1], "opt") && !(permission_mask & OPT_P_PULL_MODE))
4217 4217
     {
4218
+      if (!p[2])
4219
+        p[2] = "setenv opt"; /* will trigger an error that includes setenv opt */
4218 4220
       p += 2;
4219 4221
       msglevel_fc = M_WARN;
4220 4222
     }