From 77a3f78176739a9b44714762719cdf1975995125 Mon Sep 17 00:00:00 2001 From: jordi fita mas Date: Tue, 13 Feb 2024 17:05:19 +0100 Subject: [PATCH] Fixed null pointer access on validating booking without dogs or options --- pkg/booking/public.go | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/pkg/booking/public.go b/pkg/booking/public.go index b7eb805..21451f2 100644 --- a/pkg/booking/public.go +++ b/pkg/booking/public.go @@ -226,11 +226,11 @@ func (f *bookingForm) Valid(ctx context.Context, conn *database.Conn, l *locale. v.CheckSelectedOptions(f.CampsiteType, l.GettextNoop("Selected campsite type is not valid.")) f.Dates.Valid(v, l) f.Guests.Valid(v, l) - f.Options.Valid(v, l) + if err := f.Customer.Valid(ctx, conn, v, l); err != nil { + return false, err + } if f.Options != nil { - if err := f.Customer.Valid(ctx, conn, v, l); err != nil { - return false, err - } + f.Options.Valid(v, l) } return v.AllOK, nil } @@ -387,7 +387,7 @@ func (f *bookingGuestFields) Valid(v *form.Validator, l *locale.Locale) { v.CheckMinInteger(f.NumberChildren, 0, l.GettextNoop("Number of children can not be negative.")) } } - if v.CheckRequired(f.NumberDogs, l.GettextNoop("Number of dogs can not be empty")) { + if f.NumberDogs != nil && v.CheckRequired(f.NumberDogs, l.GettextNoop("Number of dogs can not be empty")) { if v.CheckValidInteger(f.NumberDogs, l.GettextNoop("Number of dogs must be an integer.")) { v.CheckMinInteger(f.NumberDogs, 0, l.GettextNoop("Number of dogs can not be negative.")) }