You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

21 lines
634 B

  1. diff --git a/src/libknot/dnssec/key.c b/src/libknot/dnssec/key.c
  2. index 7dc0540..3e351bb 100644
  3. --- a/src/libknot/dnssec/key.c
  4. +++ b/src/libknot/dnssec/key.c
  5. @@ -260,7 +260,15 @@ static int key_param_time(const void *save_to, char *value)
  6. struct tm parsed = { 0 };
  7. - if (!strptime(value, "%Y%m%d%H%M%S", &parsed)) {
  8. + if (strlen(value) != 14) {
  9. + return KNOT_EINVAL;
  10. + }
  11. +
  12. + char *v = value;
  13. + char buf[32] = "";
  14. + int ret = sprintf(buf, "%.4s %.2s %.2s %.2s %.2s %.2s",
  15. + v, v + 4, v + 6, v + 8, v + 10, v + 12);
  16. + if (ret != 19 || !strptime(buf, "%Y %m %d %H %M %S", &parsed)) {
  17. return KNOT_EINVAL;
  18. }