<p>laforge <strong>submitted</strong> this change.</p><p><a href="https://gerrit.osmocom.org/c/pysim/+/17280">View Change</a></p><div style="white-space:pre-wrap">Approvals:
  Jenkins Builder: Verified
  laforge: Looks good to me, approved

</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">commands: Python 3 fix: properly distinguish str and list<br><br>Unlike Python 2, in Python 3 strings also have attribute '__iter__'.<br>Because of that, a string could be passed to select_file(), that<br>actually expects a list as the first parameter.<br><br>P.S. Madness, Python 3 is just a new different language...<br>P.P.S. They should have renamed it not to confuse people.<br><br>Change-Id: I92af47abb6adff0271c55e7f278e8c5188f2be75<br>Fixes: OS#4419<br>---<br>M pySim/commands.py<br>1 file changed, 2 insertions(+), 8 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/pySim/commands.py b/pySim/commands.py</span><br><span>index ff64ed2..cc7acc6 100644</span><br><span>--- a/pySim/commands.py</span><br><span>+++ b/pySim/commands.py</span><br><span>@@ -102,6 +102,8 @@</span><br><span> </span><br><span>         def select_file(self, dir_list):</span><br><span>             rv = []</span><br><span style="color: hsl(120, 100%, 40%);">+               if type(dir_list) is not list:</span><br><span style="color: hsl(120, 100%, 40%);">+                        dir_list = [dir_list]</span><br><span>                for i in dir_list:</span><br><span>                   data, sw = self._tp.send_apdu_checksw(self.cla_byte + "a4" + self.sel_ctrl + "02" + i)</span><br><span>                   rv.append(data)</span><br><span>@@ -112,8 +114,6 @@</span><br><span>                return self._tp.send_apdu_checksw(self.cla_byte + "a4" + "0404" + aidlen + aid)</span><br><span> </span><br><span>      def read_binary(self, ef, length=None, offset=0):</span><br><span style="color: hsl(0, 100%, 40%);">-               if not hasattr(type(ef), '__iter__'):</span><br><span style="color: hsl(0, 100%, 40%);">-                   ef = [ef]</span><br><span>            r = self.select_file(ef)</span><br><span>             if len(r[-1]) == 0:</span><br><span>                  return (None, None)</span><br><span>@@ -123,23 +123,17 @@</span><br><span>          return self._tp.send_apdu(pdu)</span><br><span> </span><br><span>   def update_binary(self, ef, data, offset=0):</span><br><span style="color: hsl(0, 100%, 40%);">-            if not hasattr(type(ef), '__iter__'):</span><br><span style="color: hsl(0, 100%, 40%);">-                   ef = [ef]</span><br><span>            self.select_file(ef)</span><br><span>                 pdu = self.cla_byte + 'd6%04x%02x' % (offset, len(data) // 2) + data</span><br><span>                 return self._tp.send_apdu_checksw(pdu)</span><br><span> </span><br><span>   def read_record(self, ef, rec_no):</span><br><span style="color: hsl(0, 100%, 40%);">-              if not hasattr(type(ef), '__iter__'):</span><br><span style="color: hsl(0, 100%, 40%);">-                   ef = [ef]</span><br><span>            r = self.select_file(ef)</span><br><span>             rec_length = self.__record_len(r)</span><br><span>            pdu = self.cla_byte + 'b2%02x04%02x' % (rec_no, rec_length)</span><br><span>          return self._tp.send_apdu(pdu)</span><br><span> </span><br><span>   def update_record(self, ef, rec_no, data, force_len=False):</span><br><span style="color: hsl(0, 100%, 40%);">-             if not hasattr(type(ef), '__iter__'):</span><br><span style="color: hsl(0, 100%, 40%);">-                   ef = [ef]</span><br><span>            r = self.select_file(ef)</span><br><span>             if not force_len:</span><br><span>                    rec_length = self.__record_len(r)</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/pysim/+/17280">change 17280</a>. To unsubscribe, or for help writing mail filters, visit <a href="https://gerrit.osmocom.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://gerrit.osmocom.org/c/pysim/+/17280"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: pysim </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-Change-Id: I92af47abb6adff0271c55e7f278e8c5188f2be75 </div>
<div style="display:none"> Gerrit-Change-Number: 17280 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: Vadim Yanitskiy <axilirator@gmail.com> </div>
<div style="display:none"> Gerrit-Reviewer: Jenkins Builder </div>
<div style="display:none"> Gerrit-Reviewer: laforge <laforge@osmocom.org> </div>
<div style="display:none"> Gerrit-MessageType: merged </div>