[New-bugs-announce] [issue40154] embedded null byte when connecting to sqlite database using a bytes object

Fernando report at bugs.python.org
Thu Apr 2 08:23:03 EDT 2020


New submission from Fernando <ferferga.fer at gmail.com>:

Hello. I think that I found a bug in how sqlite3 module handle bytes.

The connect function of sqlite3 accepts strings, FilePath objects and bytes. However, it's impossible for me to connect to bytes objects that are read from BufferedReaders. I always get: 

"ValueError: embedded null byte"

This is my current code (byteDec is the BytesIO object):

==============================================
byteDec.seek(0)
conn = sqlite3.connect(byteDec.read())
==============================================

That returns the "embedded null byte" error. However, if I do:

==============================================
byteDec.seek(0)
with open("db.db", "wb" as f:
    f.write(byteDec.read())
conn = sqlite3.connect("db.db")
==============================================

Everything works flawlessly, so the BufferedReader that I have in-memory is not corrupted in any way, as it's readable from a file. I want to avoid writing to disk at all, so this is not a solution for me.


I attach to this issue a very basic proof of concept to understand the issue.

I'm running Pyhton 3.8.2 amd64 on Windows 10 1909

----------
components: IO
files: bytes_io.py
messages: 365582
nosy: ferferga
priority: normal
severity: normal
status: open
title: embedded null byte when connecting to sqlite database using a bytes object
type: crash
versions: Python 3.8
Added file: https://bugs.python.org/file49025/bytes_io.py

_______________________________________
Python tracker <report at bugs.python.org>
<https://bugs.python.org/issue40154>
_______________________________________


More information about the New-bugs-announce mailing list