Fix list_fields seek bug

On the first list_fields call, the field pointer is moved to the end
of the list of fields. This change ensures that the pointer is
positioned at the start of the field list before grabbing the names.