certctl(8): Pacify formal POSIX sh syntax.

According to POSIX 2018, the syntax between `then' and `elif' and
`fi' must be a _non-empty_ list of commands:

compound_list    : linebreak term
                 | linebreak term separator
                 ;
...
if_clause        : If compound_list Then compound_list else_part Fi
                 | If compound_list Then compound_list           Fi
                 ;
else_part        : Elif compound_list Then compound_list
                 | Elif compound_list Then compound_list else_part
                 | Else compound_list
                 ;

https://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_18_10_02

NetBSD's sh(1) currently doesn't enforce this and allows an empty
sequence of commands, but let's not rely on that nonstandard quirk.

Noted in PR 57997.
This commit is contained in:
riastradh 2024-03-04 20:37:31 +00:00
parent 900c18e5f0
commit fa5a04837c
1 changed files with 2 additions and 1 deletions

View File

@ -1,6 +1,6 @@
#!/bin/sh
# $NetBSD: certctl.sh,v 1.6 2024/03/03 15:53:55 riastradh Exp $
# $NetBSD: certctl.sh,v 1.7 2024/03/04 20:37:31 riastradh Exp $
#
# Copyright (c) 2023 The NetBSD Foundation, Inc.
# All rights reserved.
@ -440,6 +440,7 @@ rehash()
return 1
elif [ ! -e "$certsdir" ]; then
# Directory doesn't exist at all. Nothing to do!
:
elif [ ! -d "$certsdir" ]; then
error "certificates directory is not a directory"
return 1