Skip to content

Commit 65750fa

Browse files
authored
Merge pull request #44 from mutablelogic/djt-0619-multipart
Added fix for multipart and pointer dereferencing
2 parents cb96dba + fc45632 commit 65750fa

File tree

1 file changed

+13
-2
lines changed

1 file changed

+13
-2
lines changed

pkg/multipart/multipart.go

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -194,13 +194,24 @@ func (enc *Encoder) writeFileField(name string, value File) (int64, error) {
194194

195195
// Write a field as a string
196196
func (enc *Encoder) writeField(name string, value any) error {
197+
rv := reflect.ValueOf(value)
198+
199+
// Dereference pointers
200+
if rv.Kind() == reflect.Ptr {
201+
if rv.IsNil() {
202+
return nil // Ignore nil pointers
203+
}
204+
rv = rv.Elem()
205+
}
206+
207+
// Write the field value as a string
197208
switch {
198209
case enc.m != nil:
199-
if err := enc.m.WriteField(name, fmt.Sprint(value)); err != nil {
210+
if err := enc.m.WriteField(name, fmt.Sprint(rv)); err != nil {
200211
return err
201212
}
202213
case enc.v != nil:
203-
enc.v.Add(name, fmt.Sprint(value))
214+
enc.v.Add(name, fmt.Sprint(rv))
204215
default:
205216
return ErrNotImplemented
206217
}

0 commit comments

Comments
 (0)