@@ -237,15 +237,21 @@ func (ipf *IPFIXServer) processFlowSet(template []*ipfix.TemplateRecord, records
237237 }
238238
239239 if fm .srcAddr >= 0 {
240- fl .SrcAddr = bnet .IPv4FromBytes (convert .Reverse (r .Values [fm .srcAddr ]))
240+ if ip , err := bnet .IPFromBytes (convert .Reverse (r .Values [fm .srcAddr ])); err == nil {
241+ fl .SrcAddr = ip
242+ }
241243 }
242244
243245 if fm .dstAddr >= 0 {
244- fl .DstAddr = bnet .IPv4FromBytes (convert .Reverse (r .Values [fm .dstAddr ]))
246+ if ip , err := bnet .IPFromBytes (convert .Reverse (r .Values [fm .dstAddr ])); err == nil {
247+ fl .DstAddr = ip
248+ }
245249 }
246250
247251 if fm .nextHop >= 0 {
248- fl .NextHop = bnet .IPv4FromBytes (convert .Reverse (r .Values [fm .nextHop ]))
252+ if ip , err := bnet .IPFromBytes (convert .Reverse (r .Values [fm .nextHop ])); err == nil {
253+ fl .NextHop = ip
254+ }
249255 }
250256
251257 if fm .srcTos >= 0 {
@@ -260,31 +266,27 @@ func (ipf *IPFIXServer) processFlowSet(template []*ipfix.TemplateRecord, records
260266 fl .SrcAs = convert .Uint32 (r .Values [fm .srcAsn ])
261267 }
262268
263- if fm .srcMask > 0 {
269+ if fm .srcMask >= 0 {
264270 mask := uint8 (r .Values [fm .srcMask ][0 ])
265271 p := bnet .NewPfx (fl .SrcAddr , mask )
266- p .BaseAddr ()
267272 fl .SrcPfx = bnet .NewPfx (* p .BaseAddr (), mask )
268273 }
269274
270- if fm .dstMask > 0 {
275+ if fm .dstMask >= 0 {
271276 mask := uint8 (r .Values [fm .dstMask ][0 ])
272277 p := bnet .NewPfx (fl .DstAddr , mask )
273- p .BaseAddr ()
274278 fl .DstPfx = bnet .NewPfx (* p .BaseAddr (), mask )
275279 }
276280
277- if fm .srcMask6 > 0 {
281+ if fm .srcMask6 >= 0 {
278282 mask := uint8 (r .Values [fm .srcMask6 ][0 ])
279283 p := bnet .NewPfx (fl .SrcAddr , mask )
280- p .BaseAddr ()
281284 fl .SrcPfx = bnet .NewPfx (* p .BaseAddr (), mask )
282285 }
283286
284- if fm .dstMask6 > 0 {
287+ if fm .dstMask6 >= 0 {
285288 mask := uint8 (r .Values [fm .dstMask6 ][0 ])
286289 p := bnet .NewPfx (fl .DstAddr , mask )
287- p .BaseAddr ()
288290 fl .DstPfx = bnet .NewPfx (* p .BaseAddr (), mask )
289291 }
290292
0 commit comments