The function actually did not enforce that the duration string starts
with a P (or p), just that there is a P (or p) in the string.
--- /dev/null
+/*
+ * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
+ *
+ * SPDX-License-Identifier: MPL-2.0
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, you can obtain one at https://mozilla.org/MPL/2.0/.
+ *
+ * See the COPYRIGHT file distributed with this work for additional
+ * information regarding copyright ownership.
+ */
+
+dnssec-policy "test" {
+ dnskey-ttl xPT1H;
+};
duration->unlimited = false;
/* Every duration starts with 'P' */
- P = strpbrk(str, "Pp");
- if (P == NULL) {
+ if (toupper(str[0]) != 'P') {
return (ISC_R_BADNUMBER);
}
+ P = str;
/* Record the time indicator. */
T = strpbrk(str, "Tt");