Project

General

Profile

Bug #12202

nkf.c static void mime_putc the variable being used for loop used for outer loop too

Added by fanantoxa (Anton Sivakov) over 3 years ago. Updated over 3 years ago.

Status:
Closed
Priority:
Normal
Assignee:
-
Target version:
-
[ruby-core:74473]

Description

for (i=0;i<mimeout_state.count;i++) {
  if (SP<mimeout_state.buf[i] && mimeout_state.buf[i]<DEL) {
    eof_mime();
    for (i=0;i<mimeout_state.count;i++) {
      (*o_mputc)(mimeout_state.buf[i]);
      base64_count++;
    }
    mimeout_state.count = 0;
  }
}

Variable 'i' here used for outer and inner loop.
Also variable mimeout_state.count can be changed within a loop it can affect outer loop


Related issues

Related to Ruby master - Bug #12201: nkf.c static void fold_conv part of exression always trueClosedActions

Associated revisions

Revision 1d7cfff0
Added by naruse (Yui NARUSE) over 3 years ago

  • ext/nkf/nkf-utf8/nkf.c: Merge upstream 4f3edf80a0. patched by Anton Sivakov [Bug #12201] [Bug #12202]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54423 b2dd03c8-39d4-4d8f-98ff-823fe69b080e

Revision 54423
Added by naruse (Yui NARUSE) over 3 years ago

  • ext/nkf/nkf-utf8/nkf.c: Merge upstream 4f3edf80a0. patched by Anton Sivakov [Bug #12201] [Bug #12202]

Revision 54423
Added by naruse (Yui NARUSE) over 3 years ago

  • ext/nkf/nkf-utf8/nkf.c: Merge upstream 4f3edf80a0. patched by Anton Sivakov [Bug #12201] [Bug #12202]

Revision 54423
Added by naruse (Yui NARUSE) over 3 years ago

  • ext/nkf/nkf-utf8/nkf.c: Merge upstream 4f3edf80a0. patched by Anton Sivakov [Bug #12201] [Bug #12202]

Revision 54423
Added by naruse (Yui NARUSE) over 3 years ago

  • ext/nkf/nkf-utf8/nkf.c: Merge upstream 4f3edf80a0. patched by Anton Sivakov [Bug #12201] [Bug #12202]

Revision eee2769c
Added by naruse (Yui NARUSE) over 3 years ago

  • ext/nkf/nkf-utf8/nkf.c (mime_putc): fix typo. [Bug #12202] [ruby-core:74802]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54489 b2dd03c8-39d4-4d8f-98ff-823fe69b080e

Revision 54489
Added by naruse (Yui NARUSE) over 3 years ago

  • ext/nkf/nkf-utf8/nkf.c (mime_putc): fix typo. [Bug #12202] [ruby-core:74802]

Revision 54489
Added by naruse (Yui NARUSE) over 3 years ago

  • ext/nkf/nkf-utf8/nkf.c (mime_putc): fix typo. [Bug #12202] [ruby-core:74802]

Revision 54489
Added by naruse (Yui NARUSE) over 3 years ago

  • ext/nkf/nkf-utf8/nkf.c (mime_putc): fix typo. [Bug #12202] [ruby-core:74802]

Revision 54489
Added by naruse (Yui NARUSE) over 3 years ago

  • ext/nkf/nkf-utf8/nkf.c (mime_putc): fix typo. [Bug #12202] [ruby-core:74802]

Revision 42569dd4
Added by usa (Usaku NAKAMURA) over 3 years ago

merge revision(s) 54423,54489: [Backport #12201] [Backport #12202]

    * ext/nkf/nkf-utf8/nkf.c: Merge upstream 4f3edf80a0.
      patched by Anton Sivakov [Bug #12201] [Bug #12202]

    * ext/nkf/nkf-utf8/nkf.c (mime_putc): fix typo.
      [Bug #12202] [ruby-core:74802]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_2@54695 b2dd03c8-39d4-4d8f-98ff-823fe69b080e

Revision 54695
Added by usa (Usaku NAKAMURA) over 3 years ago

merge revision(s) 54423,54489: [Backport #12201] [Backport #12202]

* ext/nkf/nkf-utf8/nkf.c: Merge upstream 4f3edf80a0.
  patched by Anton Sivakov [Bug #12201] [Bug #12202]

* ext/nkf/nkf-utf8/nkf.c (mime_putc): fix typo.
  [Bug #12202] [ruby-core:74802]

Revision 9224427b
Added by nagachika (Tomoyuki Chikanaga) over 3 years ago

merge revision(s) 54423,54489: [Backport #12201] [Backport #12202]

    * ext/nkf/nkf-utf8/nkf.c: Merge upstream 4f3edf80a0.
      patched by Anton Sivakov [Bug #12201] [Bug #12202]

    * ext/nkf/nkf-utf8/nkf.c (mime_putc): fix typo.
      [Bug #12202] [ruby-core:74802]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_3@54714 b2dd03c8-39d4-4d8f-98ff-823fe69b080e

Revision 54714
Added by nagachika (Tomoyuki Chikanaga) over 3 years ago

merge revision(s) 54423,54489: [Backport #12201] [Backport #12202]

* ext/nkf/nkf-utf8/nkf.c: Merge upstream 4f3edf80a0.
  patched by Anton Sivakov [Bug #12201] [Bug #12202]

* ext/nkf/nkf-utf8/nkf.c (mime_putc): fix typo.
  [Bug #12202] [ruby-core:74802]

History

Updated by shyouhei (Shyouhei Urabe) over 3 years ago

This is (surprisingly) safe, because that mimeout_state.count = 0; line purposefully terminates outer loop. It works as expected; just in a ultimately complicated way.

Updated by fanantoxa (Anton Sivakov) over 3 years ago

Shyouhei Urabe wrote:

This is (surprisingly) safe, because that mimeout_state.count = 0; line purposefully terminates outer loop. It works as expected; just in a ultimately complicated way.

Is this ok? It can be complicated for understanding. Should I close this bug or try refactor?

Updated by shyouhei (Shyouhei Urabe) over 3 years ago

I sent a pull request to its upstream (yes, nkf has its own project). So it's really up to its mainteners. I don't think this needs a hotfix in our copy.

#4

Updated by naruse (Yui NARUSE) over 3 years ago

  • Status changed from Open to Closed

Applied in changeset r54423.


  • ext/nkf/nkf-utf8/nkf.c: Merge upstream 4f3edf80a0. patched by Anton Sivakov [Bug #12201] [Bug #12202]

Updated by fanantoxa (Anton Sivakov) over 3 years ago

Yui NARUSE wrote:

Applied in changeset r54423.


  • ext/nkf/nkf-utf8/nkf.c: Merge upstream 4f3edf80a0. patched by Anton Sivakov [Bug #12201] [Bug #12202]

Hi. I saw your changes and now it's:
...
for (j=0;i<mimeout_state.count;j++) {
(*o_mputc)(mimeout_state.buf[j]);
...

Now you're using 'j' but on condition you still using 'i'. Is it ok or mistake?

Updated by naruse (Yui NARUSE) over 3 years ago

Anton Sivakov wrote:

Yui NARUSE wrote:

Applied in changeset r54423.


  • ext/nkf/nkf-utf8/nkf.c: Merge upstream 4f3edf80a0. patched by Anton Sivakov [Bug #12201] [Bug #12202]

Hi. I saw your changes and now it's:
...
for (j=0;i<mimeout_state.count;j++) {
(*o_mputc)(mimeout_state.buf[j]);
...

Now you're using 'j' but on condition you still using 'i'. Is it ok or mistake?

fixed, thanks!

#7

Updated by usa (Usaku NAKAMURA) over 3 years ago

  • Related to Bug #12201: nkf.c static void fold_conv part of exression always true added

Updated by usa (Usaku NAKAMURA) over 3 years ago

  • Backport changed from 2.1: UNKNOWN, 2.2: UNKNOWN, 2.3: UNKNOWN to 2.1: WONTFIX, 2.2: REQUIRED, 2.3: REQUIRED

Updated by usa (Usaku NAKAMURA) over 3 years ago

  • Backport changed from 2.1: WONTFIX, 2.2: REQUIRED, 2.3: REQUIRED to 2.1: WONTFIX, 2.2: DONE, 2.3: REQUIRED

ruby_2_2 r54695 merged revision(s) 54423,54489.

Updated by nagachika (Tomoyuki Chikanaga) over 3 years ago

  • Backport changed from 2.1: WONTFIX, 2.2: DONE, 2.3: REQUIRED to 2.1: WONTFIX, 2.2: DONE, 2.3: DONE

ruby_2_3 r54714 merged revision(s) 54423,54489.

Also available in: Atom PDF