--- /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 "invalid-sigrefresh" {
+ keys {
+ csk lifetime unlimited algorithm 13;
+ };
+ signatures-refresh P7.5D;
+};
+
+zone "example.net" {
+ type primary;
+ file "example.db";
+ dnssec-policy "invalid-sigrefresh";
+};
bool not_weeks = false;
int i;
long long int lli;
+ char *endptr;
/*
* Copy the buffer as it may not be NULL terminated.
X = strpbrk(str, "Yy");
if (X != NULL) {
errno = 0;
- lli = strtoll(str + 1, NULL, 10);
+ endptr = NULL;
+ lli = strtoll(str + 1, &endptr, 10);
+ if (*endptr != *X) {
+ return (ISC_R_BADNUMBER);
+ }
if (errno != 0 || lli < 0 || lli > UINT32_MAX) {
return (ISC_R_BADNUMBER);
}
*/
if (X != NULL && (T == NULL || (size_t)(X - P) < (size_t)(T - P))) {
errno = 0;
- lli = strtoll(str + 1, NULL, 10);
+ lli = strtoll(str + 1, &endptr, 10);
+ if (*endptr != *X) {
+ return (ISC_R_BADNUMBER);
+ }
if (errno != 0 || lli < 0 || lli > UINT32_MAX) {
return (ISC_R_BADNUMBER);
}
X = strpbrk(str, "Dd");
if (X != NULL) {
errno = 0;
- lli = strtoll(str + 1, NULL, 10);
+ lli = strtoll(str + 1, &endptr, 10);
+ if (*endptr != *X) {
+ return (ISC_R_BADNUMBER);
+ }
if (errno != 0 || lli < 0 || lli > UINT32_MAX) {
return (ISC_R_BADNUMBER);
}
X = strpbrk(str, "Hh");
if (X != NULL && T != NULL) {
errno = 0;
- lli = strtoll(str + 1, NULL, 10);
+ lli = strtoll(str + 1, &endptr, 10);
+ if (*endptr != *X) {
+ return (ISC_R_BADNUMBER);
+ }
if (errno != 0 || lli < 0 || lli > UINT32_MAX) {
return (ISC_R_BADNUMBER);
}
*/
if (X != NULL && T != NULL && (size_t)(X - P) > (size_t)(T - P)) {
errno = 0;
- lli = strtoll(str + 1, NULL, 10);
+ lli = strtoll(str + 1, &endptr, 10);
+ if (*endptr != *X) {
+ return (ISC_R_BADNUMBER);
+ }
if (errno != 0 || lli < 0 || lli > UINT32_MAX) {
return (ISC_R_BADNUMBER);
}
X = strpbrk(str, "Ss");
if (X != NULL && T != NULL) {
errno = 0;
- lli = strtoll(str + 1, NULL, 10);
+ lli = strtoll(str + 1, &endptr, 10);
+ if (*endptr != *X) {
+ return (ISC_R_BADNUMBER);
+ }
if (errno != 0 || lli < 0 || lli > UINT32_MAX) {
return (ISC_R_BADNUMBER);
}
return (ISC_R_BADNUMBER);
} else {
errno = 0;
- lli = strtoll(str + 1, NULL, 10);
+ lli = strtoll(str + 1, &endptr, 10);
+ if (*endptr != *W) {
+ return (ISC_R_BADNUMBER);
+ }
if (errno != 0 || lli < 0 || lli > UINT32_MAX) {
return (ISC_R_BADNUMBER);
}