summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorPaul Sokolovsky <pfalcon@users.sourceforge.net>2016-04-10 13:36:44 +0300
committerPaul Sokolovsky <pfalcon@users.sourceforge.net>2016-04-10 13:36:44 +0300
commit558fd5d228d3c610958c4aae41b1ede0b6487c35 (patch)
tree5a4a2c22109fffd62e07347ab825a22b9543bb52
parent6c3db26ab7e03fa0140fb8d3ed315e69717b59ca (diff)
downloadmicropython-558fd5d228d3c610958c4aae41b1ede0b6487c35.tar.gz
micropython-558fd5d228d3c610958c4aae41b1ede0b6487c35.zip
py/stream: ioctl(): Properly support 2-arg form.
-rw-r--r--py/stream.c14
1 files changed, 8 insertions, 6 deletions
diff --git a/py/stream.c b/py/stream.c
index fcdd6be725..0fb57118c6 100644
--- a/py/stream.c
+++ b/py/stream.c
@@ -414,12 +414,14 @@ STATIC mp_obj_t stream_ioctl(size_t n_args, const mp_obj_t *args) {
const mp_stream_p_t *stream_p = mp_get_stream_raise(args[0], MP_STREAM_OP_IOCTL);
mp_buffer_info_t bufinfo;
- uintptr_t val;
- if (MP_OBJ_IS_INT(args[2])) {
- val = mp_obj_get_int(args[2]);
- } else {
- mp_get_buffer_raise(args[2], &bufinfo, MP_BUFFER_READ);
- val = (uintptr_t)bufinfo.buf;
+ uintptr_t val = 0;
+ if (n_args > 2) {
+ if (MP_OBJ_IS_INT(args[2])) {
+ val = mp_obj_get_int(args[2]);
+ } else {
+ mp_get_buffer_raise(args[2], &bufinfo, MP_BUFFER_WRITE);
+ val = (uintptr_t)bufinfo.buf;
+ }
}
int error;