While seek_absgp function performs binary searching, it compares the absgp value of the page found with pos_goal parameter. However, absgp may be set to -1 when no packet ends in the page. Since this case seems not to be handled, the returned position will be wrong.