<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>132700</bug_id>
          
          <creation_ts>2014-05-08 12:38:55 -0700</creation_ts>
          <short_desc>Update local storage path</short_desc>
          <delta_ts>2014-05-14 12:16:36 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>INVALID</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Martin Hock">mhock</reporter>
          <assigned_to name="Martin Hock">mhock</assigned_to>
          <cc>adauria</cc>
    
    <cc>ap</cc>
    
    <cc>beidson</cc>
    
    <cc>dbates</cc>
    
    <cc>joepeck</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1007726</commentid>
    <comment_count>0</comment_count>
    <who name="Martin Hock">mhock</who>
    <bug_when>2014-05-08 12:38:55 -0700</bug_when>
    <thetext>Update local storage path
&lt;rdar://problem/16178089&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1007727</commentid>
    <comment_count>1</comment_count>
      <attachid>231090</attachid>
    <who name="Martin Hock">mhock</who>
    <bug_when>2014-05-08 12:40:42 -0700</bug_when>
    <thetext>Created attachment 231090
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1007730</commentid>
    <comment_count>2</comment_count>
      <attachid>231091</attachid>
    <who name="Martin Hock">mhock</who>
    <bug_when>2014-05-08 12:42:14 -0700</bug_when>
    <thetext>Created attachment 231091
bug #</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1008112</commentid>
    <comment_count>3</comment_count>
    <who name="Anton D&apos;Auria">adauria</who>
    <bug_when>2014-05-09 15:22:41 -0700</bug_when>
    <thetext>This looks good. It&apos;s a little weird that you&apos;re assuming the UUID has a pattern. Do the dashes need to be in a fixed position? On the other hand, we only care about UUIDs of the past, which appear to have that pattern.

Should we only store relative paths from this point on so we can avoid this in the future?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1008673</commentid>
    <comment_count>4</comment_count>
      <attachid>231091</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2014-05-12 11:43:35 -0700</bug_when>
    <thetext>Comment on attachment 231091
bug #

View in context: https://bugs.webkit.org/attachment.cgi?id=231091&amp;action=review

r- to address review feedback.

&gt; Source/WebKit/mac/Storage/WebStorageManager.mm:154
&gt; +    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES);
&gt; +    NSString *libraryDirectory = [paths objectAtIndex:0];

How do we know that NSSearchPathForDirectoriesInDomains() will only ever return exactly one result?

We should at least assert here that the length of the NSArray is what we expect:

    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES);
    ASSERT([paths count] == 1);
    NSString *libraryDirectory = [paths objectAtIndex:0];

Also, objectAtIndex: will throw an exception if the index is out of range.  Maybe that&apos;s so rare/unexpected that we don&apos;t care to check, but if uncaught, this might prevent any app from launching.  I think we should check and simply return early.

Note that if you return early, sLocalStoragePath needs to be retained above!

&gt; Source/WebKit/mac/Storage/WebStorageManager.mm:159
&gt; +        // sLocalStoragePath doesn&apos;t begin with libraryDirectory, so fix it
&gt; +        // if a legacy path exists, replace the obsolete part with libraryDirectory
&gt; +        // else, use default storage path

Nit: Sentences need periods at the end of them (lines 157, 159), and start with capital letters if not variables.

&gt; Source/WebKit/mac/Storage/WebStorageManager.mm:162
&gt; +        sLocalStoragePath = [libraryDirectory stringByAppendingPathComponent:(match == -1) ? @&quot;WebKit/LocalStorage&quot; : [sLocalStoragePath substringFromIndex:match + matchLength]];

Nit: I would find this code easier to read if the ternary statement was pulled out into its own variable:

        NSString *storageSubdirectory = (match == -1) ? @&quot;WebKit/LocalStorage&quot; : [sLocalStoragePath substringFromIndex:match + matchLength];
        sLocalStoragePath = [libraryDirectory stringByAppendingPathComponent:storageSubdirectory];</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1008744</commentid>
    <comment_count>5</comment_count>
      <attachid>231091</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2014-05-12 15:03:44 -0700</bug_when>
    <thetext>Comment on attachment 231091
bug #

View in context: https://bugs.webkit.org/attachment.cgi?id=231091&amp;action=review

&gt; Source/WebKit/mac/Storage/WebStorageManager.mm:56
&gt; +    // Return index of start of substring resembling the pattern /XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX/Library/

If this is the only case we need to support, then using a regular expression is a huge overkill, please just use regular string manipulation.

There could be some useful functions in FileSystem.h, too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1009060</commentid>
    <comment_count>6</comment_count>
      <attachid>231405</attachid>
    <who name="Martin Hock">mhock</who>
    <bug_when>2014-05-13 13:44:49 -0700</bug_when>
    <thetext>Created attachment 231405
address comments</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1009061</commentid>
    <comment_count>7</comment_count>
    <who name="Martin Hock">mhock</who>
    <bug_when>2014-05-13 13:46:52 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 231091 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=231091&amp;action=review
&gt; 
&gt; r- to address review feedback.
&gt; 
&gt; &gt; Source/WebKit/mac/Storage/WebStorageManager.mm:154
&gt; &gt; +    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES);
&gt; &gt; +    NSString *libraryDirectory = [paths objectAtIndex:0];
&gt; 
&gt; How do we know that NSSearchPathForDirectoriesInDomains() will only ever return exactly one result?
&gt; 
&gt; We should at least assert here that the length of the NSArray is what we expect:
&gt; 
&gt;     NSArray *paths = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES);
&gt;     ASSERT([paths count] == 1);
&gt;     NSString *libraryDirectory = [paths objectAtIndex:0];
&gt; 
&gt; Also, objectAtIndex: will throw an exception if the index is out of range.  Maybe that&apos;s so rare/unexpected that we don&apos;t care to check, but if uncaught, this might prevent any app from launching.  I think we should check and simply return early.
&gt; 
&gt; Note that if you return early, sLocalStoragePath needs to be retained above!

I added the check and early return (with retain).

&gt; &gt; Source/WebKit/mac/Storage/WebStorageManager.mm:159
&gt; &gt; +        // sLocalStoragePath doesn&apos;t begin with libraryDirectory, so fix it
&gt; &gt; +        // if a legacy path exists, replace the obsolete part with libraryDirectory
&gt; &gt; +        // else, use default storage path
&gt; 
&gt; Nit: Sentences need periods at the end of them (lines 157, 159), and start with capital letters if not variables.

Fixed.

&gt; &gt; Source/WebKit/mac/Storage/WebStorageManager.mm:162
&gt; &gt; +        sLocalStoragePath = [libraryDirectory stringByAppendingPathComponent:(match == -1) ? @&quot;WebKit/LocalStorage&quot; : [sLocalStoragePath substringFromIndex:match + matchLength]];
&gt; 
&gt; Nit: I would find this code easier to read if the ternary statement was pulled out into its own variable:
&gt; 
&gt;         NSString *storageSubdirectory = (match == -1) ? @&quot;WebKit/LocalStorage&quot; : [sLocalStoragePath substringFromIndex:match + matchLength];
&gt;         sLocalStoragePath = [libraryDirectory stringByAppendingPathComponent:storageSubdirectory];

Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1009063</commentid>
    <comment_count>8</comment_count>
    <who name="Martin Hock">mhock</who>
    <bug_when>2014-05-13 13:48:47 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 231091 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=231091&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/mac/Storage/WebStorageManager.mm:56
&gt; &gt; +    // Return index of start of substring resembling the pattern /XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX/Library/
&gt; 
&gt; If this is the only case we need to support, then using a regular expression is a huge overkill, please just use regular string manipulation.
&gt; 
&gt; There could be some useful functions in FileSystem.h, too.

I have rewritten the code to avoid using a regular expression. It has the disadvantage of being substantially longer, though it is probably faster and should have very low memory overhead. I don&apos;t think that the old code had any significant performance or memory penalty, though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1009314</commentid>
    <comment_count>9</comment_count>
      <attachid>231405</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2014-05-14 12:16:24 -0700</bug_when>
    <thetext>Comment on attachment 231405
address comments

View in context: https://bugs.webkit.org/attachment.cgi?id=231405&amp;action=review

I made some comments below, but then we talked and realized that this is not the right place for this code.

&gt; Source/WebKit/mac/Storage/WebStorageManager.mm:38
&gt; +#if PLATFORM(IOS)
&gt; +#import &lt;yarr/RegularExpression.h&gt;
&gt; +#endif

This is not needed any more.

&gt; Source/WebKit/mac/Storage/WebStorageManager.mm:44
&gt; +#if PLATFORM(IOS)
&gt; +using JSC::Yarr::RegularExpression;
&gt; +#endif

Neither is this.

&gt; Source/WebKit/mac/Storage/WebStorageManager.mm:55
&gt; +static bool isHex(const String&amp; str, size_t indexStart, size_t indexEnd)

We have a function for this, isASCIIHexDigit() in ASCIICType.h.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>231090</attachid>
            <date>2014-05-08 12:40:42 -0700</date>
            <delta_ts>2014-05-08 12:42:14 -0700</delta_ts>
            <desc>patch</desc>
            <filename>badpath.01.diff</filename>
            <type>text/plain</type>
            <size>3839</size>
            <attacher name="Martin Hock">mhock</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQv
bWFjL0NoYW5nZUxvZwppbmRleCAxOGNkMmRkLi4xYjk4OWQ2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTUgQEAKKzIwMTQtMDUtMDggIE1hcnRpbiBIb2NrICA8bWhvY2tAYXBwbGUuY29t
PgorCisgICAgICAgIFtpT1NdIFVwZGF0ZSBsb2NhbCBzdG9yYWdlIHBhdGguCisgICAgICAgIE5l
ZWQgdGhlIGJ1ZyBVUkwgKE9PUFMhKS4KKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzE2MTc4MDg5
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU3Rv
cmFnZS9XZWJTdG9yYWdlTWFuYWdlci5tbToKKyAgICAgICAgKGZpbmRMZWdhY3lQYXRoKToKKyAg
ICAgICAgKGluaXRpYWxpemVMb2NhbFN0b3JhZ2VQYXRoKToKKwogMjAxNC0wNS0wNyAgUHJhdGlr
IFNvbGFua2kgIDxwc29sYW5raUBhcHBsZS5jb20+CiAKICAgICAgICAgVXNlIHN5c3RlbSBkZWZh
dWx0cyBmb3IgaGFyZHdhcmUganBlZyBkZWNvZGluZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9tYWMvU3RvcmFnZS9XZWJTdG9yYWdlTWFuYWdlci5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1N0
b3JhZ2UvV2ViU3RvcmFnZU1hbmFnZXIubW0KaW5kZXggYmYwZTkxMi4uZjAxNTY1YiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9tYWMvU3RvcmFnZS9XZWJTdG9yYWdlTWFuYWdlci5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0L21hYy9TdG9yYWdlL1dlYlN0b3JhZ2VNYW5hZ2VyLm1tCkBAIC0zMyw4
ICszMywxNiBAQAogI2ltcG9ydCA8V2ViQ29yZS9TdG9yYWdlVHJhY2tlci5oPgogI2ltcG9ydCA8
cHRocmVhZC5oPgogCisjaWYgUExBVEZPUk0oSU9TKQorI2ltcG9ydCA8eWFyci9SZWd1bGFyRXhw
cmVzc2lvbi5oPgorI2VuZGlmCisKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCisjaWYgUExB
VEZPUk0oSU9TKQordXNpbmcgSlNDOjpZYXJyOjpSZWd1bGFyRXhwcmVzc2lvbjsKKyNlbmRpZgor
CiBOU1N0cmluZyAqIGNvbnN0IFdlYlN0b3JhZ2VEaXJlY3RvcnlEZWZhdWx0c0tleSA9IEAiV2Vi
S2l0TG9jYWxTdG9yYWdlRGF0YWJhc2VQYXRoUHJlZmVyZW5jZUtleSI7CiBOU1N0cmluZyAqIGNv
bnN0IFdlYlN0b3JhZ2VEaWRNb2RpZnlPcmlnaW5Ob3RpZmljYXRpb24gPSBAIldlYlN0b3JhZ2VE
aWRNb2RpZnlPcmlnaW5Ob3RpZmljYXRpb24iOwogCkBAIC00Miw2ICs1MCwxOCBAQCBzdGF0aWMg
TlNTdHJpbmcgKnNMb2NhbFN0b3JhZ2VQYXRoOwogc3RhdGljIHZvaWQgaW5pdGlhbGl6ZUxvY2Fs
U3RvcmFnZVBhdGgoKTsKIHN0YXRpYyBwdGhyZWFkX29uY2VfdCByZWdpc3RlckxvY2FsU3RvcmFn
ZVBhdGggPSBQVEhSRUFEX09OQ0VfSU5JVDsKIAorI2lmIFBMQVRGT1JNKElPUykKK3N0YXRpYyBp
bnQgZmluZExlZ2FjeVBhdGgoY29uc3QgU3RyaW5nJiBzdHIsIGludCogbWF0Y2hMZW5ndGgpCit7
CisgICAgLy8gUmV0dXJuIGluZGV4IG9mIHN0YXJ0IG9mIHN1YnN0cmluZyByZXNlbWJsaW5nIHRo
ZSBwYXR0ZXJuIC9YWFhYWFhYWC1YWFhYLVhYWFgtWFhYWC1YWFhYWFhYWFhYWFgvTGlicmFyeS8K
KyAgICAvLyB3aGVyZSBYIGlzIGEgY2FwaXRhbCBoZXggZGlnaXQgKHJlY29nbml6ZWQgYnkgdGhl
IGNoYXJhY3RlciBjbGFzcyBbMC05QS1GXSkKKyAgICAvLyBvciAtMSBpZiBubyBzdWNoIGluZGV4
CisgICAgLy8gbWF0Y2hMZW5ndGggaXMgYXNzaWduZWQgdG8gYmUgdGhlIGxlbmd0aCBvZiB0aGUg
bWF0Y2gsIHdoaWNoIHdpbGwgYmUgNDYgaWYgbWF0Y2hlZCwgLTEgaWYgbm90IG1hdGNoZWQKKyAg
ICBSZWd1bGFyRXhwcmVzc2lvbiByZWdleCgiL1swLTlBLUZdezh9LVswLTlBLUZdezR9LVswLTlB
LUZdezR9LVswLTlBLUZdezR9LVswLTlBLUZdezEyfS9MaWJyYXJ5LyIsIFRleHRDYXNlU2Vuc2l0
aXZlKTsKKyAgICByZXR1cm4gcmVnZXgubWF0Y2goc3RyLCAwLCBtYXRjaExlbmd0aCk7Cit9Cisj
ZW5kaWYKKwogQGltcGxlbWVudGF0aW9uIFdlYlN0b3JhZ2VNYW5hZ2VyCiAKICsgKFdlYlN0b3Jh
Z2VNYW5hZ2VyICopc2hhcmVkV2ViU3RvcmFnZU1hbmFnZXIKQEAgLTEyOSwxMSArMTQ5LDI1IEBA
IHN0YXRpYyB2b2lkIGluaXRpYWxpemVMb2NhbFN0b3JhZ2VQYXRoKCkKIHsKICAgICBOU1VzZXJE
ZWZhdWx0cyAqZGVmYXVsdHMgPSBbTlNVc2VyRGVmYXVsdHMgc3RhbmRhcmRVc2VyRGVmYXVsdHNd
OwogICAgIHNMb2NhbFN0b3JhZ2VQYXRoID0gW2RlZmF1bHRzIG9iamVjdEZvcktleTpXZWJTdG9y
YWdlRGlyZWN0b3J5RGVmYXVsdHNLZXldOworI2lmIFBMQVRGT1JNKElPUykKKyAgICBOU0FycmF5
ICpwYXRocyA9IE5TU2VhcmNoUGF0aEZvckRpcmVjdG9yaWVzSW5Eb21haW5zKE5TTGlicmFyeURp
cmVjdG9yeSwgTlNVc2VyRG9tYWluTWFzaywgWUVTKTsKKyAgICBOU1N0cmluZyAqbGlicmFyeURp
cmVjdG9yeSA9IFtwYXRocyBvYmplY3RBdEluZGV4OjBdOworICAgIE5TUmFuZ2UgcmFuZ2UgPSB7
MCwgW2xpYnJhcnlEaXJlY3RvcnkgbGVuZ3RoXX07CisgICAgaWYgKCFzTG9jYWxTdG9yYWdlUGF0
aCB8fCAhW3NMb2NhbFN0b3JhZ2VQYXRoIGlzS2luZE9mQ2xhc3M6W05TU3RyaW5nIGNsYXNzXV0g
fHwgW3NMb2NhbFN0b3JhZ2VQYXRoIGxlbmd0aF0gPCByYW5nZS5sZW5ndGggfHwgW3NMb2NhbFN0
b3JhZ2VQYXRoIGNvbXBhcmU6bGlicmFyeURpcmVjdG9yeSBvcHRpb25zOjAgcmFuZ2U6cmFuZ2Vd
KSB7CisgICAgICAgIC8vIHNMb2NhbFN0b3JhZ2VQYXRoIGRvZXNuJ3QgYmVnaW4gd2l0aCBsaWJy
YXJ5RGlyZWN0b3J5LCBzbyBmaXggaXQKKyAgICAgICAgLy8gaWYgYSBsZWdhY3kgcGF0aCBleGlz
dHMsIHJlcGxhY2UgdGhlIG9ic29sZXRlIHBhcnQgd2l0aCBsaWJyYXJ5RGlyZWN0b3J5CisgICAg
ICAgIC8vIGVsc2UsIHVzZSBkZWZhdWx0IHN0b3JhZ2UgcGF0aAorICAgICAgICBpbnQgbWF0Y2hM
ZW5ndGggPSAtMTsKKyAgICAgICAgaW50IG1hdGNoID0gKCFzTG9jYWxTdG9yYWdlUGF0aCB8fCAh
W3NMb2NhbFN0b3JhZ2VQYXRoIGlzS2luZE9mQ2xhc3M6W05TU3RyaW5nIGNsYXNzXV0pID8gLTEg
OiBmaW5kTGVnYWN5UGF0aChzTG9jYWxTdG9yYWdlUGF0aCwgJm1hdGNoTGVuZ3RoKTsKKyAgICAg
ICAgc0xvY2FsU3RvcmFnZVBhdGggPSBbbGlicmFyeURpcmVjdG9yeSBzdHJpbmdCeUFwcGVuZGlu
Z1BhdGhDb21wb25lbnQ6KG1hdGNoID09IC0xKSA/IEAiV2ViS2l0L0xvY2FsU3RvcmFnZSIgOiBb
c0xvY2FsU3RvcmFnZVBhdGggc3Vic3RyaW5nRnJvbUluZGV4Om1hdGNoICsgbWF0Y2hMZW5ndGhd
XTsKKyAgICB9CisjZWxzZQogICAgIGlmICghc0xvY2FsU3RvcmFnZVBhdGggfHwgIVtzTG9jYWxT
dG9yYWdlUGF0aCBpc0tpbmRPZkNsYXNzOltOU1N0cmluZyBjbGFzc11dKSB7CiAgICAgICAgIE5T
QXJyYXkgKnBhdGhzID0gTlNTZWFyY2hQYXRoRm9yRGlyZWN0b3JpZXNJbkRvbWFpbnMoTlNMaWJy
YXJ5RGlyZWN0b3J5LCBOU1VzZXJEb21haW5NYXNrLCBZRVMpOwogICAgICAgICBOU1N0cmluZyAq
bGlicmFyeURpcmVjdG9yeSA9IFtwYXRocyBvYmplY3RBdEluZGV4OjBdOwogICAgICAgICBzTG9j
YWxTdG9yYWdlUGF0aCA9IFtsaWJyYXJ5RGlyZWN0b3J5IHN0cmluZ0J5QXBwZW5kaW5nUGF0aENv
bXBvbmVudDpAIldlYktpdC9Mb2NhbFN0b3JhZ2UiXTsKICAgICB9CisjZW5kaWYKICAgICBzTG9j
YWxTdG9yYWdlUGF0aCA9IFtbc0xvY2FsU3RvcmFnZVBhdGggc3RyaW5nQnlTdGFuZGFyZGl6aW5n
UGF0aF0gcmV0YWluXTsKIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>231091</attachid>
            <date>2014-05-08 12:42:14 -0700</date>
            <delta_ts>2014-05-13 13:44:49 -0700</delta_ts>
            <desc>bug #</desc>
            <filename>badpath.02.diff</filename>
            <type>text/plain</type>
            <size>3860</size>
            <attacher name="Martin Hock">mhock</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQv
bWFjL0NoYW5nZUxvZwppbmRleCAxOGNkMmRkLi42YjNlZGEwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTUgQEAKKzIwMTQtMDUtMDggIE1hcnRpbiBIb2NrICA8bWhvY2tAYXBwbGUuY29t
PgorCisgICAgICAgIFtpT1NdIFVwZGF0ZSBsb2NhbCBzdG9yYWdlIHBhdGguCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzI3MDAKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzE2MTc4MDg5PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogU3RvcmFnZS9XZWJTdG9yYWdlTWFuYWdlci5tbToKKyAgICAgICAg
KGZpbmRMZWdhY3lQYXRoKToKKyAgICAgICAgKGluaXRpYWxpemVMb2NhbFN0b3JhZ2VQYXRoKToK
KwogMjAxNC0wNS0wNyAgUHJhdGlrIFNvbGFua2kgIDxwc29sYW5raUBhcHBsZS5jb20+CiAKICAg
ICAgICAgVXNlIHN5c3RlbSBkZWZhdWx0cyBmb3IgaGFyZHdhcmUganBlZyBkZWNvZGluZwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvU3RvcmFnZS9XZWJTdG9yYWdlTWFuYWdlci5tbSBi
L1NvdXJjZS9XZWJLaXQvbWFjL1N0b3JhZ2UvV2ViU3RvcmFnZU1hbmFnZXIubW0KaW5kZXggYmYw
ZTkxMi4uZjAxNTY1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvU3RvcmFnZS9XZWJT
dG9yYWdlTWFuYWdlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9TdG9yYWdlL1dlYlN0b3Jh
Z2VNYW5hZ2VyLm1tCkBAIC0zMyw4ICszMywxNiBAQAogI2ltcG9ydCA8V2ViQ29yZS9TdG9yYWdl
VHJhY2tlci5oPgogI2ltcG9ydCA8cHRocmVhZC5oPgogCisjaWYgUExBVEZPUk0oSU9TKQorI2lt
cG9ydCA8eWFyci9SZWd1bGFyRXhwcmVzc2lvbi5oPgorI2VuZGlmCisKIHVzaW5nIG5hbWVzcGFj
ZSBXZWJDb3JlOwogCisjaWYgUExBVEZPUk0oSU9TKQordXNpbmcgSlNDOjpZYXJyOjpSZWd1bGFy
RXhwcmVzc2lvbjsKKyNlbmRpZgorCiBOU1N0cmluZyAqIGNvbnN0IFdlYlN0b3JhZ2VEaXJlY3Rv
cnlEZWZhdWx0c0tleSA9IEAiV2ViS2l0TG9jYWxTdG9yYWdlRGF0YWJhc2VQYXRoUHJlZmVyZW5j
ZUtleSI7CiBOU1N0cmluZyAqIGNvbnN0IFdlYlN0b3JhZ2VEaWRNb2RpZnlPcmlnaW5Ob3RpZmlj
YXRpb24gPSBAIldlYlN0b3JhZ2VEaWRNb2RpZnlPcmlnaW5Ob3RpZmljYXRpb24iOwogCkBAIC00
Miw2ICs1MCwxOCBAQCBzdGF0aWMgTlNTdHJpbmcgKnNMb2NhbFN0b3JhZ2VQYXRoOwogc3RhdGlj
IHZvaWQgaW5pdGlhbGl6ZUxvY2FsU3RvcmFnZVBhdGgoKTsKIHN0YXRpYyBwdGhyZWFkX29uY2Vf
dCByZWdpc3RlckxvY2FsU3RvcmFnZVBhdGggPSBQVEhSRUFEX09OQ0VfSU5JVDsKIAorI2lmIFBM
QVRGT1JNKElPUykKK3N0YXRpYyBpbnQgZmluZExlZ2FjeVBhdGgoY29uc3QgU3RyaW5nJiBzdHIs
IGludCogbWF0Y2hMZW5ndGgpCit7CisgICAgLy8gUmV0dXJuIGluZGV4IG9mIHN0YXJ0IG9mIHN1
YnN0cmluZyByZXNlbWJsaW5nIHRoZSBwYXR0ZXJuIC9YWFhYWFhYWC1YWFhYLVhYWFgtWFhYWC1Y
WFhYWFhYWFhYWFgvTGlicmFyeS8KKyAgICAvLyB3aGVyZSBYIGlzIGEgY2FwaXRhbCBoZXggZGln
aXQgKHJlY29nbml6ZWQgYnkgdGhlIGNoYXJhY3RlciBjbGFzcyBbMC05QS1GXSkKKyAgICAvLyBv
ciAtMSBpZiBubyBzdWNoIGluZGV4CisgICAgLy8gbWF0Y2hMZW5ndGggaXMgYXNzaWduZWQgdG8g
YmUgdGhlIGxlbmd0aCBvZiB0aGUgbWF0Y2gsIHdoaWNoIHdpbGwgYmUgNDYgaWYgbWF0Y2hlZCwg
LTEgaWYgbm90IG1hdGNoZWQKKyAgICBSZWd1bGFyRXhwcmVzc2lvbiByZWdleCgiL1swLTlBLUZd
ezh9LVswLTlBLUZdezR9LVswLTlBLUZdezR9LVswLTlBLUZdezR9LVswLTlBLUZdezEyfS9MaWJy
YXJ5LyIsIFRleHRDYXNlU2Vuc2l0aXZlKTsKKyAgICByZXR1cm4gcmVnZXgubWF0Y2goc3RyLCAw
LCBtYXRjaExlbmd0aCk7Cit9CisjZW5kaWYKKwogQGltcGxlbWVudGF0aW9uIFdlYlN0b3JhZ2VN
YW5hZ2VyCiAKICsgKFdlYlN0b3JhZ2VNYW5hZ2VyICopc2hhcmVkV2ViU3RvcmFnZU1hbmFnZXIK
QEAgLTEyOSwxMSArMTQ5LDI1IEBAIHN0YXRpYyB2b2lkIGluaXRpYWxpemVMb2NhbFN0b3JhZ2VQ
YXRoKCkKIHsKICAgICBOU1VzZXJEZWZhdWx0cyAqZGVmYXVsdHMgPSBbTlNVc2VyRGVmYXVsdHMg
c3RhbmRhcmRVc2VyRGVmYXVsdHNdOwogICAgIHNMb2NhbFN0b3JhZ2VQYXRoID0gW2RlZmF1bHRz
IG9iamVjdEZvcktleTpXZWJTdG9yYWdlRGlyZWN0b3J5RGVmYXVsdHNLZXldOworI2lmIFBMQVRG
T1JNKElPUykKKyAgICBOU0FycmF5ICpwYXRocyA9IE5TU2VhcmNoUGF0aEZvckRpcmVjdG9yaWVz
SW5Eb21haW5zKE5TTGlicmFyeURpcmVjdG9yeSwgTlNVc2VyRG9tYWluTWFzaywgWUVTKTsKKyAg
ICBOU1N0cmluZyAqbGlicmFyeURpcmVjdG9yeSA9IFtwYXRocyBvYmplY3RBdEluZGV4OjBdOwor
ICAgIE5TUmFuZ2UgcmFuZ2UgPSB7MCwgW2xpYnJhcnlEaXJlY3RvcnkgbGVuZ3RoXX07CisgICAg
aWYgKCFzTG9jYWxTdG9yYWdlUGF0aCB8fCAhW3NMb2NhbFN0b3JhZ2VQYXRoIGlzS2luZE9mQ2xh
c3M6W05TU3RyaW5nIGNsYXNzXV0gfHwgW3NMb2NhbFN0b3JhZ2VQYXRoIGxlbmd0aF0gPCByYW5n
ZS5sZW5ndGggfHwgW3NMb2NhbFN0b3JhZ2VQYXRoIGNvbXBhcmU6bGlicmFyeURpcmVjdG9yeSBv
cHRpb25zOjAgcmFuZ2U6cmFuZ2VdKSB7CisgICAgICAgIC8vIHNMb2NhbFN0b3JhZ2VQYXRoIGRv
ZXNuJ3QgYmVnaW4gd2l0aCBsaWJyYXJ5RGlyZWN0b3J5LCBzbyBmaXggaXQKKyAgICAgICAgLy8g
aWYgYSBsZWdhY3kgcGF0aCBleGlzdHMsIHJlcGxhY2UgdGhlIG9ic29sZXRlIHBhcnQgd2l0aCBs
aWJyYXJ5RGlyZWN0b3J5CisgICAgICAgIC8vIGVsc2UsIHVzZSBkZWZhdWx0IHN0b3JhZ2UgcGF0
aAorICAgICAgICBpbnQgbWF0Y2hMZW5ndGggPSAtMTsKKyAgICAgICAgaW50IG1hdGNoID0gKCFz
TG9jYWxTdG9yYWdlUGF0aCB8fCAhW3NMb2NhbFN0b3JhZ2VQYXRoIGlzS2luZE9mQ2xhc3M6W05T
U3RyaW5nIGNsYXNzXV0pID8gLTEgOiBmaW5kTGVnYWN5UGF0aChzTG9jYWxTdG9yYWdlUGF0aCwg
Jm1hdGNoTGVuZ3RoKTsKKyAgICAgICAgc0xvY2FsU3RvcmFnZVBhdGggPSBbbGlicmFyeURpcmVj
dG9yeSBzdHJpbmdCeUFwcGVuZGluZ1BhdGhDb21wb25lbnQ6KG1hdGNoID09IC0xKSA/IEAiV2Vi
S2l0L0xvY2FsU3RvcmFnZSIgOiBbc0xvY2FsU3RvcmFnZVBhdGggc3Vic3RyaW5nRnJvbUluZGV4
Om1hdGNoICsgbWF0Y2hMZW5ndGhdXTsKKyAgICB9CisjZWxzZQogICAgIGlmICghc0xvY2FsU3Rv
cmFnZVBhdGggfHwgIVtzTG9jYWxTdG9yYWdlUGF0aCBpc0tpbmRPZkNsYXNzOltOU1N0cmluZyBj
bGFzc11dKSB7CiAgICAgICAgIE5TQXJyYXkgKnBhdGhzID0gTlNTZWFyY2hQYXRoRm9yRGlyZWN0
b3JpZXNJbkRvbWFpbnMoTlNMaWJyYXJ5RGlyZWN0b3J5LCBOU1VzZXJEb21haW5NYXNrLCBZRVMp
OwogICAgICAgICBOU1N0cmluZyAqbGlicmFyeURpcmVjdG9yeSA9IFtwYXRocyBvYmplY3RBdElu
ZGV4OjBdOwogICAgICAgICBzTG9jYWxTdG9yYWdlUGF0aCA9IFtsaWJyYXJ5RGlyZWN0b3J5IHN0
cmluZ0J5QXBwZW5kaW5nUGF0aENvbXBvbmVudDpAIldlYktpdC9Mb2NhbFN0b3JhZ2UiXTsKICAg
ICB9CisjZW5kaWYKICAgICBzTG9jYWxTdG9yYWdlUGF0aCA9IFtbc0xvY2FsU3RvcmFnZVBhdGgg
c3RyaW5nQnlTdGFuZGFyZGl6aW5nUGF0aF0gcmV0YWluXTsKIH0KIAo=
</data>
<flag name="review"
          id="255512"
          type_id="1"
          status="-"
          setter="ddkilzer"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>231405</attachid>
            <date>2014-05-13 13:44:49 -0700</date>
            <delta_ts>2014-05-14 12:16:24 -0700</delta_ts>
            <desc>address comments</desc>
            <filename>badpath.04.diff</filename>
            <type>text/plain</type>
            <size>5079</size>
            <attacher name="Martin Hock">mhock</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQv
bWFjL0NoYW5nZUxvZwppbmRleCA0NjIxZmJmLi4xMzFmMjcyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTUgQEAKKzIwMTQtMDUtMTMgIE1hcnRpbiBIb2NrICA8bWhvY2tAYXBwbGUuY29t
PgorCisgICAgICAgIFtpT1NdIFVwZGF0ZSBsb2NhbCBzdG9yYWdlIHBhdGguCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzI3MDAKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzE2MTc4MDg5PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogU3RvcmFnZS9XZWJTdG9yYWdlTWFuYWdlci5tbToKKyAgICAgICAg
KGZpbmRMZWdhY3lQYXRoKToKKyAgICAgICAgKGluaXRpYWxpemVMb2NhbFN0b3JhZ2VQYXRoKToK
KwogMjAxNC0wNS0wOSAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgogCiAg
ICAgICAgIFdlYiBJbnNwZWN0b3I6IEFsbG93IFJlbW90ZSBJbnNwZWN0b3IgdG8gZW50aXRsZW1l
bnQgY2hlY2sgVUlQcm9jZXNzIHRocm91Z2ggV2ViUHJvY2VzcwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9tYWMvU3RvcmFnZS9XZWJTdG9yYWdlTWFuYWdlci5tbSBiL1NvdXJjZS9XZWJLaXQv
bWFjL1N0b3JhZ2UvV2ViU3RvcmFnZU1hbmFnZXIubW0KaW5kZXggYmYwZTkxMi4uOGIyMzI4YiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvU3RvcmFnZS9XZWJTdG9yYWdlTWFuYWdlci5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9TdG9yYWdlL1dlYlN0b3JhZ2VNYW5hZ2VyLm1tCkBA
IC0zMyw4ICszMywxNiBAQAogI2ltcG9ydCA8V2ViQ29yZS9TdG9yYWdlVHJhY2tlci5oPgogI2lt
cG9ydCA8cHRocmVhZC5oPgogCisjaWYgUExBVEZPUk0oSU9TKQorI2ltcG9ydCA8eWFyci9SZWd1
bGFyRXhwcmVzc2lvbi5oPgorI2VuZGlmCisKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCisj
aWYgUExBVEZPUk0oSU9TKQordXNpbmcgSlNDOjpZYXJyOjpSZWd1bGFyRXhwcmVzc2lvbjsKKyNl
bmRpZgorCiBOU1N0cmluZyAqIGNvbnN0IFdlYlN0b3JhZ2VEaXJlY3RvcnlEZWZhdWx0c0tleSA9
IEAiV2ViS2l0TG9jYWxTdG9yYWdlRGF0YWJhc2VQYXRoUHJlZmVyZW5jZUtleSI7CiBOU1N0cmlu
ZyAqIGNvbnN0IFdlYlN0b3JhZ2VEaWRNb2RpZnlPcmlnaW5Ob3RpZmljYXRpb24gPSBAIldlYlN0
b3JhZ2VEaWRNb2RpZnlPcmlnaW5Ob3RpZmljYXRpb24iOwogCkBAIC00Miw2ICs1MCw0OCBAQCBz
dGF0aWMgTlNTdHJpbmcgKnNMb2NhbFN0b3JhZ2VQYXRoOwogc3RhdGljIHZvaWQgaW5pdGlhbGl6
ZUxvY2FsU3RvcmFnZVBhdGgoKTsKIHN0YXRpYyBwdGhyZWFkX29uY2VfdCByZWdpc3RlckxvY2Fs
U3RvcmFnZVBhdGggPSBQVEhSRUFEX09OQ0VfSU5JVDsKIAorI2lmIFBMQVRGT1JNKElPUykKKwor
c3RhdGljIGJvb2wgaXNIZXgoY29uc3QgU3RyaW5nJiBzdHIsIHNpemVfdCBpbmRleFN0YXJ0LCBz
aXplX3QgaW5kZXhFbmQpCit7CisgICAgLy8gRG9uJ3QgY2FsbCB0aGlzIG91dHNpZGUgb2YgZmlu
ZExlZ2FjeVBhdGgsIHdoaWNoIGRvZXMgdGhlIHN0ciBsZW5ndGggY2hlY2sgZm9yIHVzLgorICAg
IGZvciAodW5zaWduZWQgaSA9IGluZGV4U3RhcnQ7IGkgPD0gaW5kZXhFbmQ7IGkrKykgeworICAg
ICAgICBVQ2hhciBhdCA9IHN0ci5hdChpKTsKKyAgICAgICAgaWYgKChhdCA8ICcwJyB8fCBhdCA+
ICc5JykgJiYgKGF0IDwgJ0EnIHx8IGF0ID4gJ0YnKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKKyAgICB9CisgICAgcmV0dXJuIHRydWU7Cit9CisKK3N0YXRpYyBib29sIGZpbmRBdEluZGV4
KGNvbnN0IFN0cmluZyYgc3RyLCBzaXplX3QgaW5kZXgsIGNvbnN0IGNoYXIqIGZpbmQpCit7Cisg
ICAgLy8gRG9uJ3QgY2FsbCB0aGlzIG91dHNpZGUgb2YgZmluZExlZ2FjeVBhdGgsIHdoaWNoIGRv
ZXMgdGhlIHN0ciBsZW5ndGggY2hlY2sgZm9yIHVzLgorICAgIGNoYXIgYyA9ICdcMCc7CisgICAg
Zm9yICh1bnNpZ25lZCBpID0gaW5kZXg7IChjID0gKmZpbmQpOyArK2ZpbmQsICsraSkgeworICAg
ICAgICBpZiAoYyAhPSBzdHIuYXQoaSkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
fQorICAgIHJldHVybiB0cnVlOworfQorCitjb25zdCB1bnNpZ25lZCBsZWdhY3lQYXRoTGVuZ3Ro
ID0gNDY7CisKK3N0YXRpYyBzaXplX3QgZmluZExlZ2FjeVBhdGgoY29uc3QgU3RyaW5nJiBzdHIp
Cit7CisgICAgLy8gUmV0dXJuIGluZGV4IG9mIHN0YXJ0IG9mIHN1YnN0cmluZyByZXNlbWJsaW5n
IHRoZSBwYXR0ZXJuIC9YWFhYWFhYWC1YWFhYLVhYWFgtWFhYWC1YWFhYWFhYWFhYWFgvTGlicmFy
eS8KKyAgICAvLyB3aGVyZSBYIGlzIGEgY2FwaXRhbCBoZXggZGlnaXQgKHJlY29nbml6ZWQgYnkg
dGhlIGNoYXJhY3RlciBjbGFzcyBbMC05QS1GXSkKKyAgICAvLyBvciBXVEY6Om5vdEZvdW5kIGlm
IG5vIHN1Y2ggaW5kZXguCisgICAgc2l6ZV90IGluZGV4ID0gMDsKKyAgICBzaXplX3QgbGVuID0g
c3RyLmxlbmd0aCgpOworICAgIHdoaWxlICgoaW5kZXggPSBzdHIuZmluZCgnLycsIGluZGV4KSkg
IT0gV1RGOjpub3RGb3VuZCAmJiBpbmRleCs0NiA8IGxlbikgeworICAgICAgICBpZiAoaXNIZXgo
c3RyLCBpbmRleCsxLCBpbmRleCs4KSAmJiBzdHIuYXQoaW5kZXgrOSkgPT0gJy0nICYmIGlzSGV4
KHN0ciwgaW5kZXgrMTAsIGluZGV4KzEzKSAmJiBzdHIuYXQoaW5kZXgrMTQpID09ICctJyAmJiBp
c0hleChzdHIsIGluZGV4KzE1LCBpbmRleCsxOCkgJiYgc3RyLmF0KGluZGV4KzE5KSA9PSAnLScg
JiYgaXNIZXgoc3RyLCBpbmRleCsyMCwgaW5kZXgrMjMpICYmIHN0ci5hdChpbmRleCsyNCkgPT0g
Jy0nICYmIGlzSGV4KHN0ciwgaW5kZXgrMjUsIGluZGV4KzM2KSAmJiBmaW5kQXRJbmRleChzdHIs
IGluZGV4KzM3LCAiL0xpYnJhcnkvIikpCisgICAgICAgICAgICByZXR1cm4gaW5kZXg7CisgICAg
ICAgICsraW5kZXg7CisgICAgfQorICAgIHJldHVybiBXVEY6Om5vdEZvdW5kOworfQorI2VuZGlm
CisKIEBpbXBsZW1lbnRhdGlvbiBXZWJTdG9yYWdlTWFuYWdlcgogCiArIChXZWJTdG9yYWdlTWFu
YWdlciAqKXNoYXJlZFdlYlN0b3JhZ2VNYW5hZ2VyCkBAIC0xMjksMTEgKzE3OSwyOSBAQCBzdGF0
aWMgdm9pZCBpbml0aWFsaXplTG9jYWxTdG9yYWdlUGF0aCgpCiB7CiAgICAgTlNVc2VyRGVmYXVs
dHMgKmRlZmF1bHRzID0gW05TVXNlckRlZmF1bHRzIHN0YW5kYXJkVXNlckRlZmF1bHRzXTsKICAg
ICBzTG9jYWxTdG9yYWdlUGF0aCA9IFtkZWZhdWx0cyBvYmplY3RGb3JLZXk6V2ViU3RvcmFnZURp
cmVjdG9yeURlZmF1bHRzS2V5XTsKKyNpZiBQTEFURk9STShJT1MpCisgICAgTlNBcnJheSAqcGF0
aHMgPSBOU1NlYXJjaFBhdGhGb3JEaXJlY3Rvcmllc0luRG9tYWlucyhOU0xpYnJhcnlEaXJlY3Rv
cnksIE5TVXNlckRvbWFpbk1hc2ssIFlFUyk7CisgICAgaWYgKCFwYXRocyB8fCAhW3BhdGhzIGNv
dW50XSkgeworICAgICAgICBbc0xvY2FsU3RvcmFnZVBhdGggcmV0YWluXTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKyAgICBOU1N0cmluZyAqbGlicmFyeURpcmVjdG9yeSA9IFtwYXRocyBvYmpl
Y3RBdEluZGV4OjBdOworICAgIE5TUmFuZ2UgcmFuZ2UgPSB7MCwgW2xpYnJhcnlEaXJlY3Rvcnkg
bGVuZ3RoXX07CisgICAgaWYgKCFzTG9jYWxTdG9yYWdlUGF0aCB8fCAhW3NMb2NhbFN0b3JhZ2VQ
YXRoIGlzS2luZE9mQ2xhc3M6W05TU3RyaW5nIGNsYXNzXV0gfHwgW3NMb2NhbFN0b3JhZ2VQYXRo
IGxlbmd0aF0gPCByYW5nZS5sZW5ndGggfHwgW3NMb2NhbFN0b3JhZ2VQYXRoIGNvbXBhcmU6bGli
cmFyeURpcmVjdG9yeSBvcHRpb25zOjAgcmFuZ2U6cmFuZ2VdKSB7CisgICAgICAgIC8vIHNMb2Nh
bFN0b3JhZ2VQYXRoIGRvZXNuJ3QgYmVnaW4gd2l0aCBsaWJyYXJ5RGlyZWN0b3J5LCBzbyBmaXgg
aXQuCisgICAgICAgIC8vIElmIGEgbGVnYWN5IHBhdGggZXhpc3RzLCB0aGVuIHJlcGxhY2UgdGhl
IG9ic29sZXRlIHBhcnQgd2l0aCBsaWJyYXJ5RGlyZWN0b3J5OworICAgICAgICAvLyBvdGhlcndp
c2UsIHVzZSB0aGUgZGVmYXVsdCBzdG9yYWdlIHBhdGguCisgICAgICAgIHNpemVfdCBtYXRjaCA9
ICghc0xvY2FsU3RvcmFnZVBhdGggfHwgIVtzTG9jYWxTdG9yYWdlUGF0aCBpc0tpbmRPZkNsYXNz
OltOU1N0cmluZyBjbGFzc11dKSA/IFdURjo6bm90Rm91bmQgOiBmaW5kTGVnYWN5UGF0aChzTG9j
YWxTdG9yYWdlUGF0aCk7CisgICAgICAgIE5TU3RyaW5nICpzdG9yYWdlU3ViZGlyZWN0b3J5ID0g
KG1hdGNoID09IFdURjo6bm90Rm91bmQpID8gQCJXZWJLaXQvTG9jYWxTdG9yYWdlIiA6IFtzTG9j
YWxTdG9yYWdlUGF0aCBzdWJzdHJpbmdGcm9tSW5kZXg6bWF0Y2ggKyBsZWdhY3lQYXRoTGVuZ3Ro
XTsKKyAgICAgICAgc0xvY2FsU3RvcmFnZVBhdGggPSBbbGlicmFyeURpcmVjdG9yeSBzdHJpbmdC
eUFwcGVuZGluZ1BhdGhDb21wb25lbnQ6c3RvcmFnZVN1YmRpcmVjdG9yeV07CisgICAgfQorI2Vs
c2UKICAgICBpZiAoIXNMb2NhbFN0b3JhZ2VQYXRoIHx8ICFbc0xvY2FsU3RvcmFnZVBhdGggaXNL
aW5kT2ZDbGFzczpbTlNTdHJpbmcgY2xhc3NdXSkgewogICAgICAgICBOU0FycmF5ICpwYXRocyA9
IE5TU2VhcmNoUGF0aEZvckRpcmVjdG9yaWVzSW5Eb21haW5zKE5TTGlicmFyeURpcmVjdG9yeSwg
TlNVc2VyRG9tYWluTWFzaywgWUVTKTsKICAgICAgICAgTlNTdHJpbmcgKmxpYnJhcnlEaXJlY3Rv
cnkgPSBbcGF0aHMgb2JqZWN0QXRJbmRleDowXTsKICAgICAgICAgc0xvY2FsU3RvcmFnZVBhdGgg
PSBbbGlicmFyeURpcmVjdG9yeSBzdHJpbmdCeUFwcGVuZGluZ1BhdGhDb21wb25lbnQ6QCJXZWJL
aXQvTG9jYWxTdG9yYWdlIl07CiAgICAgfQorI2VuZGlmCiAgICAgc0xvY2FsU3RvcmFnZVBhdGgg
PSBbW3NMb2NhbFN0b3JhZ2VQYXRoIHN0cmluZ0J5U3RhbmRhcmRpemluZ1BhdGhdIHJldGFpbl07
CiB9CiAK
</data>
<flag name="review"
          id="255849"
          type_id="1"
          status="-"
          setter="ap"
    />
          </attachment>
      

    </bug>

</bugzilla>