My Example:

ON *:SOCKREAD:mySocket:{
if ($sockerr > 0) { return }
sockread $+(&,$sockname)
;ERROR MEMORY
if ($sockbr == 0) return
;FREE MEMORY
;;;if (!$sockbr == 0) { bunset $+(&,$sockname) | return }
;;;
Your Code
}

It is necessary for $sockbr to return 0 to cause the problem of not freeing memory.

Here this type of example gives trouble. If $sockbr is zero and the return is triggered.