Skip to content

Commit 5b2d4d7

Browse files
authored
Merge pull request #914 from elicn/posix-fixes
POSIX Fixes
2 parents 2650ea5 + 95e1cc1 commit 5b2d4d7

File tree

4 files changed

+10
-20
lines changed

4 files changed

+10
-20
lines changed

qiling/os/memory.py

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -281,12 +281,7 @@ def write(self, addr: int, data: bytes) -> None:
281281
data: bytes to write
282282
"""
283283

284-
try:
285-
self.ql.uc.mem_write(addr, data)
286-
except:
287-
self.ql.log.debug(f'addresss write length: {len(data):d}')
288-
self.ql.log.error(f'addresss write error: {addr:#x}')
289-
raise
284+
self.ql.uc.mem_write(addr, data)
290285

291286
def search(self, needle: bytes, begin: int = None, end: int = None) -> Sequence[int]:
292287
"""Search for a sequence of bytes in memory.

qiling/os/posix/syscall/sched.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,6 @@ def ql_syscall_clone(ql: Qiling, flags: int, child_stack: int, parent_tidptr: in
4444
newtls = ori_newtls
4545

4646
f_th = ql.os.thread_management.cur_thread
47-
newtls = None
4847
set_child_tid_addr = None
4948

5049
# Shared virtual memory

qiling/os/posix/syscall/uio.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ def ql_syscall_readv(ql: Qiling, fd: int, vec: int, vlen: int):
3838

3939
if hasattr(ql.os.fd[fd], 'read'):
4040
data = ql.os.fd[fd].read(l)
41-
ql.log.debug(f'{data.decode()!r}')
41+
ql.log.debug(f'{data!r}')
4242
ql.mem.write(addr, data)
4343

4444
return regreturn

qiling/os/posix/syscall/unistd.py

Lines changed: 8 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -247,11 +247,12 @@ def ql_syscall_read(ql: Qiling, fd, buf: int, length: int):
247247
try:
248248
data = ql.os.fd[fd].read(length)
249249
ql.mem.write(buf, data)
250-
251-
ql.log.debug(f'read() CONTENT: {data.decode()!r}')
252-
regreturn = len(data)
253250
except:
254251
regreturn = -EBADF
252+
else:
253+
ql.log.debug(f'read() CONTENT: {data!r}')
254+
regreturn = len(data)
255+
255256
else:
256257
regreturn = -EBADF
257258

@@ -261,9 +262,10 @@ def ql_syscall_read(ql: Qiling, fd, buf: int, length: int):
261262
def ql_syscall_write(ql: Qiling, fd: int, buf: int, count: int):
262263
try:
263264
data = ql.mem.read(buf, count)
264-
265-
if data:
266-
ql.log.debug(f'write() CONTENT: {data.decode()!r}')
265+
except:
266+
regreturn = -1
267+
else:
268+
ql.log.debug(f'write() CONTENT: {data.decode()!r}')
267269

268270
if hasattr(ql.os.fd[fd], 'write'):
269271
ql.os.fd[fd].write(data)
@@ -272,12 +274,6 @@ def ql_syscall_write(ql: Qiling, fd: int, buf: int, count: int):
272274

273275
regreturn = count
274276

275-
except:
276-
regreturn = -1
277-
278-
if ql.verbose >= QL_VERBOSE.DEBUG:
279-
raise
280-
281277
return regreturn
282278

283279

0 commit comments

Comments
 (0)