<?xml version="1.0" encoding="UTF-8" ?>

<bugzilla version="5.2"
          urlbase="https://bugzilla.altlinux.org/"
          
          maintainer="jenya@basealt.ru"
>

    <bug>
          <bug_id>26463</bug_id>
          
          <creation_ts>2011-10-16 23:21:31 +0400</creation_ts>
          <short_desc>rpmhdrmemcache.so портит данные</short_desc>
          <delta_ts>2011-10-31 23:49:55 +0400</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>4</classification_id>
          <classification>Development</classification>
          <product>Sisyphus</product>
          <component>rpmhdrmemcache</component>
          <version>unstable</version>
          <rep_platform>all</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>CLOSED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P3</priority>
          <bug_severity>blocker</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="viy">viy</reporter>
          <assigned_to name="Nobody&apos;s working on this, feel free to take it">nobody</assigned_to>
          <cc>at</cc>
    
    <cc>legion</cc>
    
    <cc>vitty</cc>
          
          <qa_contact>qa-sisyphus</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>126284</commentid>
    <comment_count>0</comment_count>
    <who name="viy">viy</who>
    <bug_when>2011-10-16 23:21:31 +0400</bug_when>
    <thetext>В пакете bouncycastle-javadoc все файлы вида ^/usr/share/javadoc/bouncycastle:
rpm -qlp bouncycastle-javadoc-1.46-alt2_3jpp6.noarch.rpm | grep -v ^/usr/share/javadoc/bouncycastle
(empty)
но  check-fhs видит FHS violations: /uNistCertPathReviewerTest.html и далее по тексту внизу.

[#56797] t6 FAILED copy=bouncycastle
Girar Builder robot girar-builder@altlinux.org to Igor, sisyphus-incom.
http://git.altlinux.org/tasks/56797/logs/events.1.1.log
2011-Oct-16 20:40:10 :: task #56797 for t6 started by viy:
#100 copy bouncycastle from sisyphus
2011-Oct-16 20:40:11 :: cloned t6
2011-Oct-16 20:40:14 :: copy from `sisyphus&apos;: bouncycastle-1.46-alt2_3jpp6.src.rpm
i586/rpms/bouncycastle-javadoc-1.46-alt2_3jpp6.noarch.rpm: FHS violations: /uNistCertPathReviewerTest.html /uNistCertPathTest.html /upackage-frame.html /upackage-summary.html /upackage-tree.html
sisyphus_check: check-fhs ERROR: FHS violation
2011-Oct-16 20:40:18 :: #100: sisyphus bouncycastle: sisyphus_check FAILED</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>126479</commentid>
    <comment_count>1</comment_count>
    <who name="viy">viy</who>
    <bug_when>2011-10-24 00:25:00 +0400</bug_when>
    <thetext>Что с этим багом? он регулярно воспроизводится, уже 4 попытки -
#56797 FAILED #4 t6 copy=bouncycastle

при этом на пакеты, собранные из bouncycastle свежий sisyphus_check из сизифа
не ругается при локальном запуске. Однако в incoming что-то идет не так :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>126480</commentid>
    <comment_count>2</comment_count>
    <who name="viy">viy</who>
    <bug_when>2011-10-24 01:01:44 +0400</bug_when>
    <thetext>перевешиваю на incoming, 
так как локально с sisyphus_check все ок</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>126606</commentid>
    <comment_count>3</comment_count>
    <who name="viy">viy</who>
    <bug_when>2011-10-28 16:04:08 +0400</bug_when>
    <thetext>что с этим багом? он происходит в incoming,
локально не воспроизводится</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>126614</commentid>
    <comment_count>4</comment_count>
    <who name="Dmitry V. Levin">ldv</who>
    <bug_when>2011-10-28 18:31:07 +0400</bug_when>
    <thetext>(In reply to comment #3)
&gt; что с этим багом? он происходит в incoming,
&gt; локально не воспроизводится

Я не умею это воспроизводить.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>126617</commentid>
    <comment_count>5</comment_count>
    <who name="viy">viy</who>
    <bug_when>2011-10-28 18:42:11 +0400</bug_when>
    <thetext>(В ответ на комментарий №4)
&gt; Я не умею это воспроизводить.

ssh git.alt task run 56797
:)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>126619</commentid>
    <comment_count>6</comment_count>
    <who name="viy">viy</who>
    <bug_when>2011-10-28 18:51:20 +0400</bug_when>
    <thetext>см. напр.
http://git.altlinux.org/tasks/56797/logs/events.6.1.log
6 раз запускал 56797 и каждый раз воспроизводится как часы.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>126621</commentid>
    <comment_count>7</comment_count>
    <who name="Dmitry V. Levin">ldv</who>
    <bug_when>2011-10-29 04:12:52 +0400</bug_when>
    <thetext>rpmquery выводит мусор, и я, кажется, нашел источник этого мусора.

$ env -i sisyphus_check --files /tasks/56797/build/100/i586/rpms/bouncycastle-javadoc-1.46-alt2_3jpp6.noarch.rpm 
$ env -i LD_PRELOAD=rpmhdrmemcache.so sisyphus_check --files /tasks/56797/build/100/i586/rpms/bouncycastle-javadoc-1.46-alt2_3jpp6.noarch.rpm 
/tasks/56797/build/100/i586/rpms/bouncycastle-javadoc-1.46-alt2_3jpp6.noarch.rpm: FHS violations: /uNistCertPathReviewerTest.html /uNistCertPathTest.html /upackage-frame.html /upackage-summary.html /upackage-tree.html
sisyphus_check: check-fhs ERROR: FHS violation
$ rpmquery -f /usr/lib64/rpmhdrmemcache.so 
rpmhdrmemcache-0.1.1-alt2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>126622</commentid>
    <comment_count>8</comment_count>
    <who name="Dmitry V. Levin">ldv</who>
    <bug_when>2011-10-29 04:51:20 +0400</bug_when>
    <thetext>Удалось минимизировать пример команды, выводящей мусор:
$ env -i LD_PRELOAD=rpmhdrmemcache.so rpmquery -p --qf=&apos;%{summary}\n[%{filenames}\n]&apos; -- /ALT/Sisyphus/files/noarch/RPMS/bouncycastle-javadoc-1.46-alt2_3jpp6.noarch.rpm</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>126623</commentid>
    <comment_count>9</comment_count>
    <who name="Dmitry V. Levin">ldv</who>
    <bug_when>2011-10-29 04:55:52 +0400</bug_when>
    <thetext>$ rpmquery -f /usr/lib64/rpmhdrmemcache.so 
rpmhdrmemcache-0.1.1-alt3
Эффект прежний.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>126624</commentid>
    <comment_count>10</comment_count>
    <who name="Dmitry V. Levin">ldv</who>
    <bug_when>2011-10-29 05:15:45 +0400</bug_when>
    <thetext>Если в --qf заменить summary, например, на name, то эффект пропадает.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>126625</commentid>
    <comment_count>11</comment_count>
    <who name="Dmitry V. Levin">ldv</who>
    <bug_when>2011-10-29 05:42:28 +0400</bug_when>
    <thetext>А может это memcached_get портит данные, кто его знает...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>126626</commentid>
    <comment_count>12</comment_count>
    <who name="Dmitry V. Levin">ldv</who>
    <bug_when>2011-10-29 07:00:17 +0400</bug_when>
    <thetext>(In reply to comment #11)
&gt; А может это memcached_get портит данные, кто его знает...

Нет, memcached_get не портит, блобы одинаковые.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>126627</commentid>
    <comment_count>13</comment_count>
    <who name="Dmitry V. Levin">ldv</who>
    <bug_when>2011-10-29 07:08:00 +0400</bug_when>
    <thetext>В дополнение ко всему, memcached-1.4.7-alt1 падает...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>126628</commentid>
    <comment_count>14</comment_count>
    <who name="Dmitry V. Levin">ldv</who>
    <bug_when>2011-10-29 07:25:50 +0400</bug_when>
    <thetext>Придется объезжать неработающий rpmhdrmemcache.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>126629</commentid>
    <comment_count>15</comment_count>
    <who name="Dmitry V. Levin">ldv</who>
    <bug_when>2011-10-29 07:37:04 +0400</bug_when>
    <thetext>gb-sh-rpmhdrcache больше не используется на стадии проверки пакетов.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>126633</commentid>
    <comment_count>16</comment_count>
    <who name="viy">viy</who>
    <bug_when>2011-10-29 11:21:00 +0400</bug_when>
    <thetext>спасибо!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>126671</commentid>
    <comment_count>17</comment_count>
    <who name="at@altlinux.org">at</who>
    <bug_when>2011-10-31 14:16:03 +0400</bug_when>
    <thetext>Альт линукс глючит.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>126672</commentid>
    <comment_count>18</comment_count>
    <who name="Dmitry V. Levin">ldv</who>
    <bug_when>2011-10-31 14:19:15 +0400</bug_when>
    <thetext>(In reply to comment #17)
&gt; Альт линукс глючит.

На самом деле это rpm глючит: последовательность headerUnload -&gt; headerLoad на этом пакете превращает header в мусор.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>126673</commentid>
    <comment_count>19</comment_count>
    <who name="at@altlinux.org">at</who>
    <bug_when>2011-10-31 14:34:52 +0400</bug_when>
    <thetext>C rpmhdrcache.so не могу воспроизвести.

$ hostname                                                                                                            at.local.altlinux.org

$ ls -l /tmp/.rpmhdrcache/c5/9a177ba64ad73b7703572b74fc4fbf3fc9208e
-rw-r--r-- 1 at at 119152 Oct 31 15:13 /tmp/.rpmhdrcache/c5/9a177ba64ad73b7703572b74fc4fbf3fc9208e

$ LD_PRELOAD=rpmhdrcache.so strace -o trace -f -e trace=file rpmquery -p --qf=&apos;%{summary}\n[%{filenames}\n]&apos; -- /ALT/Sisyphus/files/noarch/RPMS/bouncycastle-javadoc-1.46-alt2_3jpp6.noarch.rpm |head
Javadoc for bouncycastle                                                       
/usr/share/javadoc/bouncycastle
/usr/share/javadoc/bouncycastle-1.46
/usr/share/javadoc/bouncycastle-1.46/bcmail
/usr/share/javadoc/bouncycastle-1.46/bcmail/allclasses-frame.html
/usr/share/javadoc/bouncycastle-1.46/bcmail/allclasses-noframe.html
/usr/share/javadoc/bouncycastle-1.46/bcmail/constant-values.html
/usr/share/javadoc/bouncycastle-1.46/bcmail/deprecated-list.html
/usr/share/javadoc/bouncycastle-1.46/bcmail/help-doc.html
/usr/share/javadoc/bouncycastle-1.46/bcmail/index-all.html

$ grep openat trace
30691 openat(4, &quot;c5/9a177ba64ad73b7703572b74fc4fbf3fc9208e&quot;, O_RDONLY) = 6

$ LD_PRELOAD=rpmhdrcache.so strace -o trace -f -e trace=file rpmquery -p --qf=&apos;%{summary}\n[%{filenames}\n]&apos; -- /ALT/Sisyphus/files/noarch/RPMS/bouncycastle-javadoc-1.46-alt2_3jpp6.noarch.rpm |md5sum
a39d33f1df90c4c7bde2811273e4895d  -

$ rpmquery -p --qf=&apos;%{summary}\n[%{filenames}\n]&apos; -- /ALT/Sisyphus/files/noarch/RPMS/bouncycastle-javadoc-1.46-alt2_3jpp6.noarch.rpm |md5sum                        
a39d33f1df90c4c7bde2811273e4895d  -</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>126679</commentid>
    <comment_count>20</comment_count>
      <attachid>5180</attachid>
    <who name="at@altlinux.org">at</who>
    <bug_when>2011-10-31 22:39:06 +0400</bug_when>
    <thetext>Created attachment 5180
показывает что блоб меняется после загрузки

Мужчины, этот патч показывает что блоб меняется прямо во время лоуда. Это должно навести нас на ценные мысли, что мы смотрим в память, которую почикали.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>126680</commentid>
    <comment_count>21</comment_count>
      <attachid>5181</attachid>
    <who name="at@altlinux.org">at</who>
    <bug_when>2011-10-31 22:57:19 +0400</bug_when>
    <thetext>Created attachment 5181
патч который исправляет мемори проблемз фо ю

Мужчины, короче патч вот такой. Но я вам советую использовать rpmhdrcache, в котором это давно исправлено.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>126681</commentid>
    <comment_count>22</comment_count>
    <who name="Dmitry V. Levin">ldv</who>
    <bug_when>2011-10-31 23:09:31 +0400</bug_when>
    <thetext>(In reply to comment #21)
&gt; Created an attachment (id=5181) [details]
&gt; патч который исправляет мемори проблемз фо ю

Спасибо.

&gt; Мужчины, короче патч вот такой.

А зачем эти манипуляции с blobsize?

&gt; Но я вам советую использовать rpmhdrcache,

Опять на bdb?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>126682</commentid>
    <comment_count>23</comment_count>
    <who name="Repository Robot">repository-robot</who>
    <bug_when>2011-10-31 23:28:13 +0400</bug_when>
    <thetext>rpmhdrmemcache-0.1.2-alt1 -&gt; sisyphus:

* Tue Nov 01 2011 Dmitry V. Levin &lt;ldv@altlinux&gt; 0.1.2-alt1
- Fixed potential memory corruption and memory leak
  (by Alexey Tourbin; closes: #26463).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>126683</commentid>
    <comment_count>24</comment_count>
    <who name="at@altlinux.org">at</who>
    <bug_when>2011-10-31 23:49:55 +0400</bug_when>
    <thetext>Блоб может храниться в сжатом виде. Тогда подразумевается логика

void *blob = ...;
int blobsize = ....;
if (сжатый) {
  void *ublob = ...;
  int ublobsize = ...;
  ...
  blob = ublob;
  blob = ublobsize;
}
... blob, blobsize ...

То есть это конечно так, педантизм, но всё же, логика состоит в том, что поскольку далее в функции сжатый блоб нас не интересует, то разжатый блоб просто подменяет собой сжатый. А ublob по идее должен существовать только на время разжатия (область видимости - в блоке if).  Но ublob объявлен как массив на стеке, поэтому его нельзя внести в блок if.  Поэтому получается такая полумера: blobsize в принципе мог бы потребоваться далее в функции (хотя для headerLoad он не требуется), а ublob нельзя внести в блок if.

В чём преимущество memcached?  То, что к памяти доступ памяти быстрее, чем к диску - это ну такое tongue-in-chick объяснение, если только поржать.

bdb раньше глючила в режиме DB_INIT_CDB (либо из-за ошибок/допущений в реализации, либо из-за того, что использовался слишком маленький размер cachesize по умолчанию).  Потом я просто оторвал CDB и прикрутил внешний flock на каталог.  Долго ломал голову, можно ли реализовать rwlock с помощью futex&apos;а или нет.  Ничего не придумал.

Вместо bdb можно реализовать какую-нибудь такую свою штуковину, которая делает ровно то, что нужно. Тем более что размер ключей у нас фиксированный (sha1).  В книжке W. Richard Stevens&apos;а прямо для дураков написано как сделать hash queues, free list и т.д.  Но что-то бесплатно неохота упражняться, а больших денег за такое упраженение наверное никто не даст!</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>5180</attachid>
            <date>2011-10-31 22:39:06 +0400</date>
            <delta_ts>2011-10-31 22:39:06 +0400</delta_ts>
            <desc>показывает что блоб меняется после загрузки</desc>
            <filename>rpmhdrmemcache-diag.patch</filename>
            <type>text/plain</type>
            <size>1529</size>
            <attacher name="at@altlinux.org">at</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL2hkcmNhY2hlLmMgYi9oZHJjYWNoZS5jCmluZGV4IDViY2VmMWEuLmIwZTE2
YmMgMTAwNjQ0Ci0tLSBhL2hkcmNhY2hlLmMKKysrIGIvaGRyY2FjaGUuYwpAQCAtOTUsNiArOTUs
MTUgQEAgaW50IG1ha2Vfa2V5KGNvbnN0IGNoYXIgKnBhdGgsIGNvbnN0IHN0cnVjdCBzdGF0ICpz
dCwgY2hhciAqa2V5KQogc3RhdGljCiBjb25zdCBpbnQgaGRyc2l6ZV9tYXggPSAoMjU2IDw8IDEw
KTsKIAorc3RhdGljCit1bnNpZ25lZCBoYXNoKGNvbnN0IHVuc2lnbmVkIGNoYXIgKmJsb2IsIGlu
dCBzaXplKQoreworICAgIHVuc2lnbmVkIGggPSA1MzgxOworICAgIHdoaWxlIChzaXplLS0gPiAw
KQorCWggPSBoICogMzMgKyAqYmxvYisrOworICAgIHJldHVybiBoOworfQorCiBIZWFkZXIgaGRy
Y2FjaGVfZ2V0KGNvbnN0IGNoYXIgKnBhdGgsIGNvbnN0IHN0cnVjdCBzdGF0ICpzdCwgdW5zaWdu
ZWQgKm9mZikKIHsKICAgICBpZiAoaW5pdGlhbGl6ZSgpIDwgMCkKQEAgLTExNyw5ICsxMjYsOSBA
QCBIZWFkZXIgaGRyY2FjaGVfZ2V0KGNvbnN0IGNoYXIgKnBhdGgsIGNvbnN0IHN0cnVjdCBzdGF0
ICpzdCwgdW5zaWduZWQgKm9mZikKIAltY2RiX3B1dChlbnYsIGtleSwga2V5c2l6ZSwgZGF0YSwg
ZGF0YXNpemUpOwogICAgIH0KICAgICB2b2lkICpibG9iID0gZGF0YS0+YmxvYjsKKyAgICBpbnQg
YmxvYnNpemUgPSBkYXRhc2l6ZSAtIHNpemVvZihzdHJ1Y3QgY2FjaGVfZW50KSArIDE7CiAgICAg
Y2hhciB1YmxvYltoZHJzaXplX21heF07CiAgICAgaWYgKGRhdGEtPnZmbGFncyAmIFZfTFpPKSB7
Ci0JaW50IGJsb2JzaXplID0gZGF0YXNpemUgLSBzaXplb2Yoc3RydWN0IGNhY2hlX2VudCkgKyAx
OwogCWx6b191aW50IHVibG9ic2l6ZSA9IDA7CiAJaW50IHJjID0gbHpvMXhfZGVjb21wcmVzcyhi
bG9iLCBibG9ic2l6ZSwgdWJsb2IsICZ1YmxvYnNpemUsIE5VTEwpOwogCWlmIChyYyAhPSBMWk9f
RV9PSyB8fCB1YmxvYnNpemUgPCAxIHx8IHVibG9ic2l6ZSA+IGhkcnNpemVfbWF4KSB7CkBAIC0x
MjcsOCArMTM2LDExIEBAIEhlYWRlciBoZHJjYWNoZV9nZXQoY29uc3QgY2hhciAqcGF0aCwgY29u
c3Qgc3RydWN0IHN0YXQgKnN0LCB1bnNpZ25lZCAqb2ZmKQogCSAgICByZXR1cm4gTlVMTDsKIAl9
CiAJYmxvYiA9IHVibG9iOworCWJsb2JzaXplID0gdWJsb2JzaXplOwogICAgIH0KKyAgICBmcHJp
bnRmKHN0ZGVyciwgImJsb2IgJXggKCVkKSBoYXNoIDE6ICV4XG4iLCAqKHVuc2lnbmVkICopIGJs
b2IsIGJsb2JzaXplLCBoYXNoKGJsb2IsIGJsb2JzaXplKSk7CiAgICAgSGVhZGVyIGggPSBoZWFk
ZXJMb2FkKGJsb2IpOworICAgIGZwcmludGYoc3RkZXJyLCAiYmxvYiAleCAoJWQpIGhhc2ggMjog
JXhcbiIsICoodW5zaWduZWQgKikgYmxvYiwgYmxvYnNpemUsIGhhc2goYmxvYiwgYmxvYnNpemUp
KTsKICAgICBpZiAoaCA9PSBOVUxMKSB7CiAJZnByaW50ZihzdGRlcnIsICIlcyAlczogaGVhZGVy
TG9hZCBmYWlsZWRcbiIsIF9fZnVuY19fLCBrZXkpOwogCXJldHVybiBOVUxMOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>5181</attachid>
            <date>2011-10-31 22:57:19 +0400</date>
            <delta_ts>2011-10-31 22:57:19 +0400</delta_ts>
            <desc>патч который исправляет мемори проблемз фо ю</desc>
            <filename>rpmhdrmemcache-fix.patch</filename>
            <type>text/plain</type>
            <size>1046</size>
            <attacher name="at@altlinux.org">at</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL2hkcmNhY2hlLmMgYi9oZHJjYWNoZS5jCmluZGV4IDViY2VmMWEuLjljMDg2
YWQgMTAwNjQ0Ci0tLSBhL2hkcmNhY2hlLmMKKysrIGIvaGRyY2FjaGUuYwpAQCAtMTE3LDkgKzEx
Nyw5IEBAIEhlYWRlciBoZHJjYWNoZV9nZXQoY29uc3QgY2hhciAqcGF0aCwgY29uc3Qgc3RydWN0
IHN0YXQgKnN0LCB1bnNpZ25lZCAqb2ZmKQogCW1jZGJfcHV0KGVudiwga2V5LCBrZXlzaXplLCBk
YXRhLCBkYXRhc2l6ZSk7CiAgICAgfQogICAgIHZvaWQgKmJsb2IgPSBkYXRhLT5ibG9iOworICAg
IGludCBibG9ic2l6ZSA9IGRhdGFzaXplIC0gc2l6ZW9mKHN0cnVjdCBjYWNoZV9lbnQpICsgMTsK
ICAgICBjaGFyIHVibG9iW2hkcnNpemVfbWF4XTsKICAgICBpZiAoZGF0YS0+dmZsYWdzICYgVl9M
Wk8pIHsKLQlpbnQgYmxvYnNpemUgPSBkYXRhc2l6ZSAtIHNpemVvZihzdHJ1Y3QgY2FjaGVfZW50
KSArIDE7CiAJbHpvX3VpbnQgdWJsb2JzaXplID0gMDsKIAlpbnQgcmMgPSBsem8xeF9kZWNvbXBy
ZXNzKGJsb2IsIGJsb2JzaXplLCB1YmxvYiwgJnVibG9ic2l6ZSwgTlVMTCk7CiAJaWYgKHJjICE9
IExaT19FX09LIHx8IHVibG9ic2l6ZSA8IDEgfHwgdWJsb2JzaXplID4gaGRyc2l6ZV9tYXgpIHsK
QEAgLTEyNywxNCArMTI3LDE2IEBAIEhlYWRlciBoZHJjYWNoZV9nZXQoY29uc3QgY2hhciAqcGF0
aCwgY29uc3Qgc3RydWN0IHN0YXQgKnN0LCB1bnNpZ25lZCAqb2ZmKQogCSAgICByZXR1cm4gTlVM
TDsKIAl9CiAJYmxvYiA9IHVibG9iOworCWJsb2JzaXplID0gdWJsb2JzaXplOwogICAgIH0KLSAg
ICBIZWFkZXIgaCA9IGhlYWRlckxvYWQoYmxvYik7CisgICAgSGVhZGVyIGggPSBoZWFkZXJDb3B5
TG9hZChibG9iKTsKICAgICBpZiAoaCA9PSBOVUxMKSB7CiAJZnByaW50ZihzdGRlcnIsICIlcyAl
czogaGVhZGVyTG9hZCBmYWlsZWRcbiIsIF9fZnVuY19fLCBrZXkpOwogCXJldHVybiBOVUxMOwog
ICAgIH0KICAgICBpZiAob2ZmKQogCSpvZmYgPSBkYXRhLT5vZmY7CisgICAgZnJlZShkYXRhKTsK
ICAgICByZXR1cm4gaDsKIH0KIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>