Skip to content

Commit 137f7e5

Browse files
Fix Nil pointers in WebSystemdSocket
Signed-off-by: Ethan J. Gallant <[email protected]> Co-authored-by: William Van Hevelingen <[email protected]> Co-authored-by: Stephanie Palis <[email protected]> change to var
1 parent c5c3d5b commit 137f7e5

File tree

1 file changed

+7
-1
lines changed

1 file changed

+7
-1
lines changed

web/tls_config.go

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ import (
3333

3434
var (
3535
errNoTLSConfig = errors.New("TLS config is not present")
36+
ErrNoListeners = errors.New("no web listen address or systemd socket flag specified")
3637
)
3738

3839
type Config struct {
@@ -203,7 +204,11 @@ func ServeMultiple(listeners []net.Listener, server *http.Server, flags *FlagCon
203204
// WebSystemdSocket in the FlagConfig is true. The FlagConfig is also passed on
204205
// to ServeMultiple.
205206
func ListenAndServe(server *http.Server, flags *FlagConfig, logger log.Logger) error {
206-
if *flags.WebSystemdSocket {
207+
if flags.WebSystemdSocket == nil && (flags.WebListenAddresses == nil || len(*flags.WebListenAddresses) == 0) {
208+
return ErrNoListeners
209+
}
210+
211+
if flags.WebSystemdSocket != nil && *flags.WebSystemdSocket {
207212
level.Info(logger).Log("msg", "Listening on systemd activated listeners instead of port listeners.")
208213
listeners, err := activation.Listeners()
209214
if err != nil {
@@ -214,6 +219,7 @@ func ListenAndServe(server *http.Server, flags *FlagConfig, logger log.Logger) e
214219
}
215220
return ServeMultiple(listeners, server, flags, logger)
216221
}
222+
217223
listeners := make([]net.Listener, 0, len(*flags.WebListenAddresses))
218224
for _, address := range *flags.WebListenAddresses {
219225
listener, err := net.Listen("tcp", address)

0 commit comments

Comments
 (0)