From 57c6dae142aa3a32e7b792957d124ae5ed1aabb1 Mon Sep 17 00:00:00 2001 From: reyk <> Date: Thu, 12 Feb 2015 23:07:52 +0000 Subject: [PATCH] Allow constraints URL without leading path (eg. "https://www.openbsd.org"). Fixes segfault on configuration load time, as reported by Donovan Watteau. --- src/usr.sbin/ntpd/parse.y | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/src/usr.sbin/ntpd/parse.y b/src/usr.sbin/ntpd/parse.y index e5b403b4..ba3d592a 100644 --- a/src/usr.sbin/ntpd/parse.y +++ b/src/usr.sbin/ntpd/parse.y @@ -1,4 +1,4 @@ -/* $OpenBSD: parse.y,v 1.60 2015/02/12 01:54:57 reyk Exp $ */ +/* $OpenBSD: parse.y,v 1.61 2015/02/12 23:07:52 reyk Exp $ */ /* * Copyright (c) 2002, 2003, 2004 Henning Brauer @@ -316,21 +316,22 @@ url : STRING { strlen("https://")) != 0) { host($1, &$$->a); $$->name = $1; - if (($$->path = strdup("/")) == NULL) - fatal("strdup"); } else { hname = $1 + strlen("https://"); path = hname + strcspn(hname, "/\\"); - if (*path == '\0') - path = "/"; - if (($$->path = strdup(path)) == NULL) - fatal("strdup"); - *path = '\0'; + if (*path != '\0') { + if (($$->path = strdup(path)) == NULL) + fatal("strdup"); + *path = '\0'; + } host(hname, &$$->a); if (($$->name = strdup(hname)) == NULL) fatal("strdup"); } + if ($$->path == NULL && + ($$->path = strdup("/")) == NULL) + fatal("strdup"); } ;