linux.py 文件源码

python
阅读 26 收藏 0 点赞 0 评论 0

项目:manticore 作者: trailofbits 项目源码 文件源码
def sys_getcwd(self, buf, size):
        '''
        getcwd - Get the current working directory
        :param int buf: Pointer to dest array
        :param size: size in bytes of the array pointed to by the buf 
        :return: buf (Success), or 0
        '''

        try:
            current_dir = os.getcwd()          
            length = len(current_dir) + 1

            if size > 0 and size < length:
                logger.info("GETCWD: size is greater than 0, but is smaller than the length"  
                            "of the path + 1. Returning ERANGE")
                return -errno.ERANGE

            if not self.current.memory.access_ok(slice(buf, buf+length), 'w'):
                logger.info("GETCWD: buf within invalid memory. Returning EFAULT")
                return -errno.EFAULT

            self.current.write_string(buf, current_dir)
            logger.debug("getcwd(0x%08x, %u) -> <%s> (Size %d)", buf, size, current_dir, length)
            return length

        except OSError as e:
            return -e.errno
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号