# Buggy code
def run(self, fd, iovec, iovcnt):
    if iovec.symbolic or iovcnt.symbolic:
        raise angr.errors.SimPosixError("Can't handle symbolic arguments to readv")
    iovcnt = self.state.solver.eval(iovcnt)
    res = 0
    for element in self.state.mem[iovec].struct.iovec.array(iovcnt).resolved:
        tmpres = self.inline_call(read, fd, element.iov_base, element.iov_len)
        if self.state.solver.is_true(self.state.solver.SLT(tmpres, 0)):
            return tmpres

    return res


# Traceback (AttributeError)
Traceback (most recent call last):
File "try.py", line 5, in <module>
sm.explore()
File "/home/berlinm/.local/lib/python3.7/site-packages/angr/sim_manager.py", line 239, in explore
self.run(stash=stash, n=n, **kwargs)
File "/home/berlinm/.local/lib/python3.7/site-packages/angr/sim_manager.py", line 261, in run
self.step(stash=stash, **kwargs)
File "/home/berlinm/.local/lib/python3.7/site-packages/angr/misc/hookset.py", line 75, in __call__
result = current_hook(self.func.__self__, *args, **kwargs)
File "/home/berlinm/.local/lib/python3.7/site-packages/angr/exploration_techniques/explorer.py", line 96, in step
return simgr.step(stash=stash, extra_stop_points=base_extra_stop_points | self._extra_stop_points, **kwargs)
File "/home/berlinm/.local/lib/python3.7/site-packages/angr/misc/hookset.py", line 80, in __call__
return self.func(*args, **kwargs)
File "/home/berlinm/.local/lib/python3.7/site-packages/angr/sim_manager.py", line 346, in step
successors = self.step_state(state, successor_func=successor_func, **run_args)
File "/home/berlinm/.local/lib/python3.7/site-packages/angr/sim_manager.py", line 383, in step_state
successors = self.successors(state, successor_func=successor_func, **run_args)
File "/home/berlinm/.local/lib/python3.7/site-packages/angr/sim_manager.py", line 422, in successors
return self._project.factory.successors(state, **run_args)
File "/home/berlinm/.local/lib/python3.7/site-packages/angr/factory.py", line 60, in successors
return self.default_engine.process(*args, **kwargs)
File "/home/berlinm/.local/lib/python3.7/site-packages/angr/engines/vex/light/slicing.py", line 19, in process
return super().process(*args, **kwargs)
File "/home/berlinm/.local/lib/python3.7/site-packages/angr/engines/engine.py", line 149, in process
self.process_successors(self.successors, **kwargs)
File "/home/berlinm/.local/lib/python3.7/site-packages/angr/engines/failure.py", line 21, in process_successors
return super().process_successors(successors, **kwargs)
File "/home/berlinm/.local/lib/python3.7/site-packages/angr/engines/syscall.py", line 38, in process_successors
return self.process_procedure(state, successors, sys_procedure, **kwargs)
File "/home/berlinm/.local/lib/python3.7/site-packages/angr/engines/procedure.py", line 37, in process_procedure
inst = procedure.execute(state, successors, ret_to=ret_to, arguments=arguments)
File "/home/berlinm/.local/lib/python3.7/site-packages/angr/sim_procedure.py", line 230, in execute
r = getattr(inst, inst.run_func)(*sim_args, **inst.kwargs)
File "/home/berlinm/.local/lib/python3.7/site-packages/angr/procedures/linux_kernel/iovec.py", line 21, in run
if self.state.solver.is_true(self.state.solver.SLT(tmpres, 0)):
File "/home/berlinm/.local/lib/python3.7/site-packages/angr/state_plugins/solver.py", line 126, in concrete_shortcut_bool
return f(self, *args, **kwargs)
File "/home/berlinm/.local/lib/python3.7/site-packages/angr/state_plugins/sim_action_object.py", line 57, in ast_stripper
return f(*new_args, **new_kwargs)
File "/home/berlinm/.local/lib/python3.7/site-packages/angr/state_plugins/solver.py", line 89, in wrapped_f
return f(*args, **kwargs)
File "/home/berlinm/.local/lib/python3.7/site-packages/angr/state_plugins/solver.py", line 585, in is_true
return self._solver.is_true(e, extra_constraints=self._adjust_constraint_list(extra_constraints), exact=exact)
File "/home/berlinm/.local/lib/python3.7/site-packages/claripy/frontend_mixins/concrete_handler_mixin.py", line 53, in is_true
return super(ConcreteHandlerMixin, self).is_true(e, **kwargs)
File "/home/berlinm/.local/lib/python3.7/site-packages/claripy/frontend_mixins/constraint_filter_mixin.py", line 60, in is_true
return super(ConstraintFilterMixin, self).is_true(e, extra_constraints=ec, **kwargs)
File "/home/berlinm/.local/lib/python3.7/site-packages/claripy/frontends/composite_frontend.py", line 349, in is_true
r = ms.is_true(e, extra_constraints=extra_constraints, exact=exact)
File "/home/berlinm/.local/lib/python3.7/site-packages/claripy/frontends/full_frontend.py", line 184, in is_true
return e.is_true()
AttributeError: 'NotImplementedType' object has no attribute 'is_true'

# Fixed code
def run(self, fd, iovec, iovcnt):
    if iovec.symbolic or iovcnt.symbolic:
        raise angr.errors.SimPosixError("Can't handle symbolic arguments to readv")
    iovcnt = self.state.solver.eval(iovcnt)
    res = 0
    for element in self.state.mem[iovec].struct.iovec.array(iovcnt).resolved:
        tmpres = self.inline_call(read, fd, element.iov_base, element.iov_len).ret_expr
        if self.state.solver.is_true(self.state.solver.SLT(tmpres, 0)):
            return tmpres

    return res