<?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>97884</bug_id>
          
          <creation_ts>2012-09-28 03:38:26 -0700</creation_ts>
          <short_desc>[EFL][WK2] Support multiple window creation for MiniBrowser</short_desc>
          <delta_ts>2012-10-08 00:40:56 -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 EFL</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</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="Jinwoo Song">jinwoo7.song</reporter>
          <assigned_to name="Jinwoo Song">jinwoo7.song</assigned_to>
          <cc>bw80.lee</cc>
    
    <cc>laszlo.gombos</cc>
    
    <cc>lucas.de.marchi</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>730451</commentid>
    <comment_count>0</comment_count>
    <who name="Jinwoo Song">jinwoo7.song</who>
    <bug_when>2012-09-28 03:38:26 -0700</bug_when>
    <thetext>Implement the multiple window creation for MiniBrowser and bind the &apos;F9&apos; key for opening new window.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>730456</commentid>
    <comment_count>1</comment_count>
      <attachid>166195</attachid>
    <who name="Jinwoo Song">jinwoo7.song</who>
    <bug_when>2012-09-28 03:43:44 -0700</bug_when>
    <thetext>Created attachment 166195
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>730508</commentid>
    <comment_count>2</comment_count>
      <attachid>166195</attachid>
    <who name="Byungwoo Lee">bw80.lee</who>
    <bug_when>2012-09-28 04:58:10 -0700</bug_when>
    <thetext>Comment on attachment 166195
Patch

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

&gt; Tools/MiniBrowser/efl/main.c:260
&gt; +static int browserCreate(const char *url, const char *engine)

Why is the return type changed? 
There is no change about return value in the body of this function.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>730565</commentid>
    <comment_count>3</comment_count>
      <attachid>166195</attachid>
    <who name="Jinwoo Song">jinwoo7.song</who>
    <bug_when>2012-09-28 06:05:12 -0700</bug_when>
    <thetext>Comment on attachment 166195
Patch

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

&gt;&gt; Tools/MiniBrowser/efl/main.c:260
&gt;&gt; +static int browserCreate(const char *url, const char *engine)
&gt; 
&gt; Why is the return type changed? 
&gt; There is no change about return value in the body of this function.

As the browserCreate does not need to return anymore, I&apos;ll change the type to void.
Thanks for pointing out the mistake.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>730698</commentid>
    <comment_count>4</comment_count>
      <attachid>166195</attachid>
    <who name="Byungwoo Lee">bw80.lee</who>
    <bug_when>2012-09-28 08:49:30 -0700</bug_when>
    <thetext>Comment on attachment 166195
Patch

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

&gt; Tools/MiniBrowser/efl/main.c:50
&gt; MiniBrowser *browser;

The global &apos;browser&apos; variable can be removed.

&gt; Tools/MiniBrowser/efl/main.c:41
&gt; +static char *engine = NULL;

I cannot found where this variable is used.

&gt; Tools/MiniBrowser/efl/main.c:112
&gt; +static void
&gt; +browserDestroy(Ecore_Evas *ee)
&gt; +{
&gt; +    ecore_evas_free(ee);
&gt; +    if (!eina_list_count(windows))
&gt; +        ecore_main_loop_quit();
&gt; +}

I think that this function can be removed.

It is better to move #110,111 line to the #120 in closeWindow().
There is no relation between ecore_evas_free and checking eina_list_count.

&gt; Tools/MiniBrowser/efl/main.c:114
&gt;  static void closeWindow(Ecore_Evas *ee)

I think that it is more clear to use MiniBrowser* for the parameter.

&gt; Tools/MiniBrowser/efl/main.c:118
&gt; +    MiniBrowser *app;
&gt; +
&gt; +    app = find_app_from_ee(ee);

MiniBrowser *app = find_app_from_ee(ee);

And I think null check will be needed.

&gt; Tools/MiniBrowser/efl/main.c:135
&gt; +    app = find_app_from_ee(ee);
&gt; +    url_bar_width_set(app-&gt;url_bar, w);

Null check is needed before use

&gt; Tools/MiniBrowser/efl/main.c:336
&gt; -    Ecore_Event_Handler *handle = ecore_event_handler_add(ECORE_EVENT_SIGNAL_EXIT, main_signal_exit, 0);
&gt; +    Ecore_Event_Handler *handle = ecore_event_handler_add(ECORE_EVENT_SIGNAL_EXIT, main_signal_exit, &amp;windows);

windows is a global variable and the passed pointer is not used in the main_signal_exit.
Passing the pointer is not needed, or main_signal_exit should use the pointer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>730781</commentid>
    <comment_count>5</comment_count>
      <attachid>166195</attachid>
    <who name="Jinwoo Song">jinwoo7.song</who>
    <bug_when>2012-09-28 10:28:03 -0700</bug_when>
    <thetext>Comment on attachment 166195
Patch

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

&gt;&gt; Tools/MiniBrowser/efl/main.c:41
&gt;&gt; +static char *engine = NULL;
&gt; 
&gt; I cannot found where this variable is used.

It stores the ecore-evas engine type from the command line argument.

&gt;&gt; Tools/MiniBrowser/efl/main.c:112
&gt;&gt; +}
&gt; 
&gt; I think that this function can be removed.
&gt; 
&gt; It is better to move #110,111 line to the #120 in closeWindow().
&gt; There is no relation between ecore_evas_free and checking eina_list_count.

I agree and will remove this function and move the code as your suggestion.

&gt;&gt; Tools/MiniBrowser/efl/main.c:114
&gt;&gt;  static void closeWindow(Ecore_Evas *ee)
&gt; 
&gt; I think that it is more clear to use MiniBrowser* for the parameter.

This is a callback function of ecore_evas_callback_delete_request_set() with Ecore_Evas parameter.

&gt;&gt; Tools/MiniBrowser/efl/main.c:118
&gt;&gt; +    app = find_app_from_ee(ee);
&gt; 
&gt; MiniBrowser *app = find_app_from_ee(ee);
&gt; 
&gt; And I think null check will be needed.

okay, I&apos;ll do it.

&gt;&gt; Tools/MiniBrowser/efl/main.c:135
&gt;&gt; +    url_bar_width_set(app-&gt;url_bar, w);
&gt; 
&gt; Null check is needed before use

okay.

&gt;&gt;&gt; Tools/MiniBrowser/efl/main.c:260
&gt;&gt;&gt; +static int browserCreate(const char *url, const char *engine)
&gt;&gt; 
&gt;&gt; Why is the return type changed? 
&gt;&gt; There is no change about return value in the body of this function.
&gt; 
&gt; As the browserCreate does not need to return anymore, I&apos;ll change the type to void.
&gt; Thanks for pointing out the mistake.

It seems to better to use Eina_Bool return type to check if the creation is succeeded or not.

&gt;&gt; Tools/MiniBrowser/efl/main.c:336
&gt;&gt; +    Ecore_Event_Handler *handle = ecore_event_handler_add(ECORE_EVENT_SIGNAL_EXIT, main_signal_exit, &amp;windows);
&gt; 
&gt; windows is a global variable and the passed pointer is not used in the main_signal_exit.
&gt; Passing the pointer is not needed, or main_signal_exit should use the pointer.

yes indeed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>730786</commentid>
    <comment_count>6</comment_count>
      <attachid>166274</attachid>
    <who name="Jinwoo Song">jinwoo7.song</who>
    <bug_when>2012-09-28 10:33:37 -0700</bug_when>
    <thetext>Created attachment 166274
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>731086</commentid>
    <comment_count>7</comment_count>
      <attachid>166274</attachid>
    <who name="Byungwoo Lee">bw80.lee</who>
    <bug_when>2012-09-28 17:30:37 -0700</bug_when>
    <thetext>Comment on attachment 166274
Patch

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

&gt; Tools/MiniBrowser/efl/main.c:-48
&gt; -MiniBrowser *browser;

This global variable still exists.

&gt; Tools/MiniBrowser/efl/main.c:96
&gt; +        closeWindow(app-&gt;ee);

closeWindow() is used here also.

At this context, find_app_from_ee() is not needed because app is already known.

How about separating closeWindow() and deleteRequestCallback()?

&gt; Tools/MiniBrowser/efl/main.c:99
&gt; +    if (!eina_list_count(windows))
&gt; +        ecore_main_loop_quit();

if condition can be removed.
At this line, window will be always NULL.

&gt; Tools/MiniBrowser/efl/main.c:111
&gt; +    if (!eina_list_count(windows)) {

if(!windows) looks enough like #94

&gt; Tools/MiniBrowser/efl/main.c:112
&gt; +        free(app);

Is it mistake? I think this line should be out of the if() condition.

&gt; Tools/MiniBrowser/efl/main.c:350
&gt; +    eina_list_free(windows);

Is it needed?

If so, deleting &apos;app&apos; also needed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>731087</commentid>
    <comment_count>8</comment_count>
      <attachid>166274</attachid>
    <who name="Byungwoo Lee">bw80.lee</who>
    <bug_when>2012-09-28 17:31:40 -0700</bug_when>
    <thetext>Comment on attachment 166274
Patch

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

&gt;&gt; Tools/MiniBrowser/efl/main.c:-48
&gt;&gt; -MiniBrowser *browser;
&gt; 
&gt; This global variable still exists.

Oops. deleted. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>731619</commentid>
    <comment_count>9</comment_count>
      <attachid>166274</attachid>
    <who name="Jinwoo Song">jinwoo7.song</who>
    <bug_when>2012-10-01 05:56:33 -0700</bug_when>
    <thetext>Comment on attachment 166274
Patch

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

&gt;&gt; Tools/MiniBrowser/efl/main.c:96
&gt;&gt; +        closeWindow(app-&gt;ee);
&gt; 
&gt; closeWindow() is used here also.
&gt; 
&gt; At this context, find_app_from_ee() is not needed because app is already known.
&gt; 
&gt; How about separating closeWindow() and deleteRequestCallback()?

I understand your point and separated closeWindow() and deleteRequestCallback().

&gt;&gt; Tools/MiniBrowser/efl/main.c:99
&gt;&gt; +        ecore_main_loop_quit();
&gt; 
&gt; if condition can be removed.
&gt; At this line, window will be always NULL.

you are right.

&gt;&gt; Tools/MiniBrowser/efl/main.c:111
&gt;&gt; +    if (!eina_list_count(windows)) {
&gt; 
&gt; if(!windows) looks enough like #94

done.

&gt;&gt; Tools/MiniBrowser/efl/main.c:112
&gt;&gt; +        free(app);
&gt; 
&gt; Is it mistake? I think this line should be out of the if() condition.

done.

&gt;&gt; Tools/MiniBrowser/efl/main.c:350
&gt;&gt; +    eina_list_free(windows);
&gt; 
&gt; Is it needed?
&gt; 
&gt; If so, deleting &apos;app&apos; also needed.

It is an unneeded line so I removed it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>731640</commentid>
    <comment_count>10</comment_count>
      <attachid>166463</attachid>
    <who name="Jinwoo Song">jinwoo7.song</who>
    <bug_when>2012-10-01 06:28:33 -0700</bug_when>
    <thetext>Created attachment 166463
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>732155</commentid>
    <comment_count>11</comment_count>
      <attachid>166463</attachid>
    <who name="Byungwoo Lee">bw80.lee</who>
    <bug_when>2012-10-01 17:24:04 -0700</bug_when>
    <thetext>Comment on attachment 166463
Patch

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

&gt; Tools/MiniBrowser/efl/main.c:79
&gt; +

How about adding NULL check for &apos;ee&apos;?
if (!ee)
    return NULL;

&gt; Tools/MiniBrowser/efl/main.c:90
&gt; +{

Please add Null check before accessing &apos;app&apos;

&gt; Tools/MiniBrowser/efl/main.c:110
&gt; +    MiniBrowser *app = browser_find(ee);
&gt; +    if (!app)
&gt; +        return;
&gt; +    browser_close(app);

Can be shortened &apos;browser_close(browser_find(ee));&apos; if browser_close has null check for &apos;app&apos;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>732327</commentid>
    <comment_count>12</comment_count>
      <attachid>166617</attachid>
    <who name="Jinwoo Song">jinwoo7.song</who>
    <bug_when>2012-10-01 23:33:27 -0700</bug_when>
    <thetext>Created attachment 166617
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>732329</commentid>
    <comment_count>13</comment_count>
    <who name="Jinwoo Song">jinwoo7.song</who>
    <bug_when>2012-10-01 23:33:52 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; (From update of attachment 166463 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=166463&amp;action=review
&gt; 
&gt; &gt; Tools/MiniBrowser/efl/main.c:79
&gt; &gt; +
&gt; 
&gt; How about adding NULL check for &apos;ee&apos;?
&gt; if (!ee)
&gt;     return NULL;
&gt; 
&gt; &gt; Tools/MiniBrowser/efl/main.c:90
&gt; &gt; +{
&gt; 
&gt; Please add Null check before accessing &apos;app&apos;
&gt; 
&gt; &gt; Tools/MiniBrowser/efl/main.c:110
&gt; &gt; +    MiniBrowser *app = browser_find(ee);
&gt; &gt; +    if (!app)
&gt; &gt; +        return;
&gt; &gt; +    browser_close(app);
&gt; 
&gt; Can be shortened &apos;browser_close(browser_find(ee));&apos; if browser_close has null check for &apos;app&apos;.

All done, thanks for review!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>732367</commentid>
    <comment_count>14</comment_count>
      <attachid>166617</attachid>
    <who name="Byungwoo Lee">bw80.lee</who>
    <bug_when>2012-10-02 00:21:58 -0700</bug_when>
    <thetext>Comment on attachment 166617
Patch

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

With some additional empty lines, it looks ok to me.

&gt; Tools/MiniBrowser/efl/main.c:81
&gt; +    if (!ee)
&gt; +        return NULL;

How about adding empty line after this?

&gt; Tools/MiniBrowser/efl/main.c:94
&gt; +    if (!app)
&gt; +        return;

ditto.

&gt; Tools/MiniBrowser/efl/main.c:104
&gt; +    while (windows)
&gt; +        browser_close((MiniBrowser *)eina_list_data_get(windows));

ditto.

&gt; Tools/MiniBrowser/efl/main.c:111
&gt; +    browser_close(browser_find(ee));

ditto.

&gt; Tools/MiniBrowser/efl/main.c:127
&gt; +    app = browser_find(ee);
&gt; +    if (!app)
&gt; +        return;

ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>732517</commentid>
    <comment_count>15</comment_count>
      <attachid>166659</attachid>
    <who name="Jinwoo Song">jinwoo7.song</who>
    <bug_when>2012-10-02 04:24:38 -0700</bug_when>
    <thetext>Created attachment 166659
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>732520</commentid>
    <comment_count>16</comment_count>
    <who name="Jinwoo Song">jinwoo7.song</who>
    <bug_when>2012-10-02 04:25:12 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; (From update of attachment 166617 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=166617&amp;action=review
&gt; 
&gt; With some additional empty lines, it looks ok to me.
&gt; 
&gt; &gt; Tools/MiniBrowser/efl/main.c:81
&gt; &gt; +    if (!ee)
&gt; &gt; +        return NULL;
&gt; 
&gt; How about adding empty line after this?
&gt; 
&gt; &gt; Tools/MiniBrowser/efl/main.c:94
&gt; &gt; +    if (!app)
&gt; &gt; +        return;
&gt; 
&gt; ditto.
&gt; 
&gt; &gt; Tools/MiniBrowser/efl/main.c:104
&gt; &gt; +    while (windows)
&gt; &gt; +        browser_close((MiniBrowser *)eina_list_data_get(windows));
&gt; 
&gt; ditto.
&gt; 
&gt; &gt; Tools/MiniBrowser/efl/main.c:111
&gt; &gt; +    browser_close(browser_find(ee));
&gt; 
&gt; ditto.
&gt; 
&gt; &gt; Tools/MiniBrowser/efl/main.c:127
&gt; &gt; +    app = browser_find(ee);
&gt; &gt; +    if (!app)
&gt; &gt; +        return;
&gt; 
&gt; ditto.

Done. :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>734327</commentid>
    <comment_count>17</comment_count>
      <attachid>166659</attachid>
    <who name="Ryuan Choi">ryuan.choi</who>
    <bug_when>2012-10-03 20:11:48 -0700</bug_when>
    <thetext>Comment on attachment 166659
Patch

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

&gt; Tools/MiniBrowser/efl/main.c:106
&gt; +    while (windows)
&gt; +        browser_close((MiniBrowser *)eina_list_data_get(windows));

Why don&apos;t you use EINA_LIST_FREE?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>734338</commentid>
    <comment_count>18</comment_count>
      <attachid>166659</attachid>
    <who name="Laszlo Gombos">laszlo.gombos</who>
    <bug_when>2012-10-03 20:43:55 -0700</bug_when>
    <thetext>Comment on attachment 166659
Patch

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

&gt; Tools/MiniBrowser/efl/main.c:41
&gt; +static char *engine = NULL;

I think we should use a more descriptive name, perhaps evas_engine.

&gt; Tools/MiniBrowser/efl/main.c:170
&gt; +        browser_create(DEFAULT_URL, engine);

Should this be window_create instead ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>734379</commentid>
    <comment_count>19</comment_count>
      <attachid>166659</attachid>
    <who name="Jinwoo Song">jinwoo7.song</who>
    <bug_when>2012-10-03 22:50:48 -0700</bug_when>
    <thetext>Comment on attachment 166659
Patch

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

&gt;&gt; Tools/MiniBrowser/efl/main.c:41
&gt;&gt; +static char *engine = NULL;
&gt; 
&gt; I think we should use a more descriptive name, perhaps evas_engine.

Okay, I&apos;ll change to evas_engine.

&gt;&gt; Tools/MiniBrowser/efl/main.c:106
&gt;&gt; +        browser_close((MiniBrowser *)eina_list_data_get(windows));
&gt; 
&gt; Why don&apos;t you use EINA_LIST_FREE?

I can use EINA_LIST_FREE as following, but it seems current style looks more simple.
Do we have any more advantage to use EINA_LIST_FREE?

MiniBrowser *app;
EINA_LIST_FREE(windows, app)
{
    url_bar_del(app-&gt;url_bar);
    ecore_evas_free(app-&gt;ee);
    free(app);
}

&gt;&gt; Tools/MiniBrowser/efl/main.c:170
&gt;&gt; +        browser_create(DEFAULT_URL, engine);
&gt; 
&gt; Should this be window_create instead ?

window_create, window_close are more proper name. I&apos;ll modify them.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>734637</commentid>
    <comment_count>20</comment_count>
      <attachid>166659</attachid>
    <who name="Jinwoo Song">jinwoo7.song</who>
    <bug_when>2012-10-04 06:16:50 -0700</bug_when>
    <thetext>Comment on attachment 166659
Patch

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

&gt;&gt;&gt; Tools/MiniBrowser/efl/main.c:106
&gt;&gt;&gt; +        browser_close((MiniBrowser *)eina_list_data_get(windows));
&gt;&gt; 
&gt;&gt; Why don&apos;t you use EINA_LIST_FREE?
&gt; 
&gt; I can use EINA_LIST_FREE as following, but it seems current style looks more simple.
&gt; Do we have any more advantage to use EINA_LIST_FREE?
&gt; 
&gt; MiniBrowser *app;
&gt; EINA_LIST_FREE(windows, app)
&gt; {
&gt;     url_bar_del(app-&gt;url_bar);
&gt;     ecore_evas_free(app-&gt;ee);
&gt;     free(app);
&gt; }

As discussed in offline, I use EINA_LIST_FREE and take out eina_list_remove from browser_close().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>734638</commentid>
    <comment_count>21</comment_count>
      <attachid>167093</attachid>
    <who name="Jinwoo Song">jinwoo7.song</who>
    <bug_when>2012-10-04 06:20:58 -0700</bug_when>
    <thetext>Created attachment 167093
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>734717</commentid>
    <comment_count>22</comment_count>
      <attachid>167093</attachid>
    <who name="Ryuan Choi">ryuan.choi</who>
    <bug_when>2012-10-04 08:35:17 -0700</bug_when>
    <thetext>Comment on attachment 167093
Patch

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

&gt; Tools/MiniBrowser/efl/main.c:92
&gt; +static void window_close(MiniBrowser *app)

How about window_delete?
Functionality looks not close and you looks introduce window_create for creation.

Anyway, I think that Efl commonly use _add / _del.

&gt; Tools/MiniBrowser/efl/main.c:131
&gt; +    app = browser_find(ee);
&gt; +    if (!app)
&gt; +        return;

We&apos;d better to move this before calling 126 line.

&gt; Tools/MiniBrowser/efl/main.c:135
&gt;      webview = evas_object_name_find(ecore_evas_get(ee), &quot;browser&quot;);

After this patch, we don&apos;t need to find webview from ecore_evas, right?

&gt; Tools/MiniBrowser/efl/main.c:341
&gt; -        browser = browserCreate(url, engine);
&gt; +        if (!window_create(url, evas_engine)) {

For me, returning browser (or window) and adding it to lists looks better.

At least, I think that window_create and window_close should consider windows lists in same view point.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>734830</commentid>
    <comment_count>23</comment_count>
      <attachid>167093</attachid>
    <who name="Jinwoo Song">jinwoo7.song</who>
    <bug_when>2012-10-04 10:54:01 -0700</bug_when>
    <thetext>Comment on attachment 167093
Patch

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

&gt;&gt; Tools/MiniBrowser/efl/main.c:92
&gt;&gt; +static void window_close(MiniBrowser *app)
&gt; 
&gt; How about window_delete?
&gt; Functionality looks not close and you looks introduce window_create for creation.
&gt; 
&gt; Anyway, I think that Efl commonly use _add / _del.

window_delete may describe the things done in the function, but window_close looks good to me as well.

&gt; Tools/MiniBrowser/efl/main.c:132
&gt; +

Fixed.

&gt;&gt; Tools/MiniBrowser/efl/main.c:135
&gt;&gt;      webview = evas_object_name_find(ecore_evas_get(ee), &quot;browser&quot;);
&gt; 
&gt; After this patch, we don&apos;t need to find webview from ecore_evas, right?

yes, we can directly use the webview from app like app-&gt;browser. I&apos;ll fix it.

&gt;&gt; Tools/MiniBrowser/efl/main.c:341
&gt;&gt; +        if (!window_create(url, evas_engine)) {
&gt; 
&gt; For me, returning browser (or window) and adding it to lists looks better.
&gt; 
&gt; At least, I think that window_create and window_close should consider windows lists in same view point.

From the point of consistency, I agree with you.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>734836</commentid>
    <comment_count>24</comment_count>
      <attachid>167132</attachid>
    <who name="Jinwoo Song">jinwoo7.song</who>
    <bug_when>2012-10-04 11:01:51 -0700</bug_when>
    <thetext>Created attachment 167132
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>735236</commentid>
    <comment_count>25</comment_count>
      <attachid>167132</attachid>
    <who name="Ryuan Choi">ryuan.choi</who>
    <bug_when>2012-10-04 19:12:12 -0700</bug_when>
    <thetext>Comment on attachment 167132
Patch

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

&gt; Tools/MiniBrowser/efl/main.c:341
&gt; +    MiniBrowser *app;

Because this file has c extension, should we declare this in top of function for compatibility?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>735581</commentid>
    <comment_count>26</comment_count>
      <attachid>167311</attachid>
    <who name="Jinwoo Song">jinwoo7.song</who>
    <bug_when>2012-10-05 05:09:39 -0700</bug_when>
    <thetext>Created attachment 167311
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>735582</commentid>
    <comment_count>27</comment_count>
    <who name="Jinwoo Song">jinwoo7.song</who>
    <bug_when>2012-10-05 05:10:03 -0700</bug_when>
    <thetext>(In reply to comment #25)
&gt; (From update of attachment 167132 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=167132&amp;action=review
&gt; 
&gt; &gt; Tools/MiniBrowser/efl/main.c:341
&gt; &gt; +    MiniBrowser *app;
&gt; 
&gt; Because this file has c extension, should we declare this in top of function for compatibility?

Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>735687</commentid>
    <comment_count>28</comment_count>
      <attachid>167132</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-10-05 09:15:32 -0700</bug_when>
    <thetext>Comment on attachment 167132
Patch

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

&gt; Tools/MiniBrowser/efl/main.c:59
&gt; -            (&apos;e&apos;, &quot;engine&quot;, &quot;ecore-evas engine to use.&quot;),
&gt; +            (&apos;e&apos;, &quot;ecore-evas engine&quot;, &quot;ecore-evas engine to use.&quot;),

huh? isn&apos;t this so you can write -e or --engine? I guess --ecore-evas engine won&apos;t work

&gt; Tools/MiniBrowser/efl/main.c:73
&gt; +static MiniBrowser *window_create(const char *url, const char *evas_engine);

evas_engine_name? it is a string

&gt; Tools/MiniBrowser/efl/main.c:126
&gt; +    app = browser_find(ee);

browser_find? we dont have multiple browsers, we have multiple browser windows. find_browser_window?

&gt; Tools/MiniBrowser/efl/main.c:135
&gt; +    evas_object_move(app-&gt;browser, 0, URL_BAR_HEIGHT);

browser is what here? the window?

&gt; Tools/MiniBrowser/efl/main.c:350
&gt; +        return quit(EINA_FALSE, &quot;ERROR: could not create browser window\n&quot;);

missing .</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>735768</commentid>
    <comment_count>29</comment_count>
      <attachid>167132</attachid>
    <who name="Jinwoo Song">jinwoo7.song</who>
    <bug_when>2012-10-05 10:59:55 -0700</bug_when>
    <thetext>Comment on attachment 167132
Patch

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

&gt;&gt; Tools/MiniBrowser/efl/main.c:59
&gt;&gt; +            (&apos;e&apos;, &quot;ecore-evas engine&quot;, &quot;ecore-evas engine to use.&quot;),
&gt; 
&gt; huh? isn&apos;t this so you can write -e or --engine? I guess --ecore-evas engine won&apos;t work

That&apos;s a silly mistake. I&apos;ll fix it.

&gt;&gt; Tools/MiniBrowser/efl/main.c:73
&gt;&gt; +static MiniBrowser *window_create(const char *url, const char *evas_engine);
&gt; 
&gt; evas_engine_name? it is a string

okay, I&apos;ll change the variable name to &apos;evas_engine_name&apos;.

&gt;&gt; Tools/MiniBrowser/efl/main.c:126
&gt;&gt; +    app = browser_find(ee);
&gt; 
&gt; browser_find? we dont have multiple browsers, we have multiple browser windows. find_browser_window?

I&apos;ll change to browser_window_find().

&gt;&gt; Tools/MiniBrowser/efl/main.c:135
&gt;&gt; +    evas_object_move(app-&gt;browser, 0, URL_BAR_HEIGHT);
&gt; 
&gt; browser is what here? the window?

Yes, app-&gt;browser seems to be improper name so I&apos;ll change to app-&gt;webview.

&gt;&gt; Tools/MiniBrowser/efl/main.c:350
&gt;&gt; +        return quit(EINA_FALSE, &quot;ERROR: could not create browser window\n&quot;);
&gt; 
&gt; missing .

I&apos;ll fix it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>735775</commentid>
    <comment_count>30</comment_count>
      <attachid>167352</attachid>
    <who name="Jinwoo Song">jinwoo7.song</who>
    <bug_when>2012-10-05 11:04:45 -0700</bug_when>
    <thetext>Created attachment 167352
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>736326</commentid>
    <comment_count>31</comment_count>
      <attachid>167352</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-10-06 22:56:14 -0700</bug_when>
    <thetext>Comment on attachment 167352
Patch

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

&gt; Tools/MiniBrowser/efl/main.c:48
&gt;  typedef struct _MiniBrowser {
&gt;      Ecore_Evas *ee;
&gt;      Evas *evas;
&gt; -    Evas_Object *browser;
&gt; +    Evas_Object *webview;
&gt;      Url_Bar *url_bar;
&gt;  } MiniBrowser;

Maybe renaming MiniBrowser to BrowserWindow would make sense

&gt; Tools/MiniBrowser/efl/main.c:86
&gt; +    EINA_LIST_FOREACH(windows, l, data)
&gt; +    {

should { be on the other line? That would be normal webkit style

&gt; Tools/MiniBrowser/efl/main.c:99
&gt; +static void window_close(MiniBrowser *app)
&gt; +{
&gt; +    url_bar_del(app-&gt;url_bar);
&gt; +    ecore_evas_free(app-&gt;ee);
&gt; +    free(app);
&gt; +}

The name makes it seem like this method closes the window, but the implementation looks to be destructing the window instead. Why not call it window_free() ?

Also it is confusing that the argument is called &quot;app&quot; and not &quot;window&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>736486</commentid>
    <comment_count>32</comment_count>
    <who name="Jinwoo Song">jinwoo7.song</who>
    <bug_when>2012-10-07 21:24:37 -0700</bug_when>
    <thetext>(In reply to comment #31)
&gt; (From update of attachment 167352 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=167352&amp;action=review
&gt; 
&gt; &gt; Tools/MiniBrowser/efl/main.c:48
&gt; &gt;  typedef struct _MiniBrowser {
&gt; &gt;      Ecore_Evas *ee;
&gt; &gt;      Evas *evas;
&gt; &gt; -    Evas_Object *browser;
&gt; &gt; +    Evas_Object *webview;
&gt; &gt;      Url_Bar *url_bar;
&gt; &gt;  } MiniBrowser;
&gt; 
&gt; Maybe renaming MiniBrowser to BrowserWindow would make sense
&gt; 
Yes, BrowserWindow looks much better than MiniBrowser. I&apos;ll change it.

&gt; &gt; Tools/MiniBrowser/efl/main.c:86
&gt; &gt; +    EINA_LIST_FOREACH(windows, l, data)
&gt; &gt; +    {
&gt; 
&gt; should { be on the other line? That would be normal webkit style
&gt; 
I&apos;ll fix it.

&gt; &gt; Tools/MiniBrowser/efl/main.c:99
&gt; &gt; +static void window_close(MiniBrowser *app)
&gt; &gt; +{
&gt; &gt; +    url_bar_del(app-&gt;url_bar);
&gt; &gt; +    ecore_evas_free(app-&gt;ee);
&gt; &gt; +    free(app);
&gt; &gt; +}
&gt; 
&gt; The name makes it seem like this method closes the window, but the implementation looks to be destructing the window instead. Why not call it window_free() ?
&gt; 
&gt; Also it is confusing that the argument is called &quot;app&quot; and not &quot;window&quot;

Okay, I&apos;ll follow your advise. 

It seems that this patch is doing refactoring the whole code, but I like to do this 
as I also didn&apos;t like some function/variable names. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>736524</commentid>
    <comment_count>33</comment_count>
      <attachid>167510</attachid>
    <who name="Jinwoo Song">jinwoo7.song</who>
    <bug_when>2012-10-07 22:51:45 -0700</bug_when>
    <thetext>Created attachment 167510
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>736550</commentid>
    <comment_count>34</comment_count>
      <attachid>167510</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-08 00:40:51 -0700</bug_when>
    <thetext>Comment on attachment 167510
Patch

Clearing flags on attachment: 167510

Committed r130620: &lt;http://trac.webkit.org/changeset/130620&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>736551</commentid>
    <comment_count>35</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-08 00:40:56 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>166195</attachid>
            <date>2012-09-28 03:43:44 -0700</date>
            <delta_ts>2012-09-28 10:33:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-97884-20120928194301.patch</filename>
            <type>text/plain</type>
            <size>5595</size>
            <attacher name="Jinwoo Song">jinwoo7.song</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI5ODU0CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYTExMjdiMmI1OWM5YTRmMzE2ZTg4OWZiNTZkNWU1OGJm
Y2JkZGJmZC4uNjcyNjA4N2Q4MTc2MzMyYTdmY2UyNzQ3NmIyNDM2NDExZWVlMTRkNCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIx
IEBACisyMDEyLTA5LTI4ICBKaW53b28gU29uZyAgPGppbndvbzcuc29uZ0BzYW1zdW5nLmNvbT4K
KworICAgICAgICBbRUZMXVtXSzJdIFN1cHBvcnQgbXVsdGlwbGUgd2luZG93IGNyZWF0aW9uIGZv
ciBNaW5pQnJvd3NlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9OTc4ODQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBJbXBsZW1lbnQgdGhlIG11bHRpcGxlIHdpbmRvdyBjcmVhdGlvbiBmb3IgTWluaUJyb3dz
ZXIgYW5kIGJpbmQgdGhlICdGOScga2V5IGZvciBvcGVuaW5nIGEgbmV3IHdpbmRvdy4KKworICAg
ICAgICAqIE1pbmlCcm93c2VyL2VmbC9tYWluLmM6CisgICAgICAgIChtYWluX3NpZ25hbF9leGl0
KToKKyAgICAgICAgKGJyb3dzZXJEZXN0cm95KToKKyAgICAgICAgKGNsb3NlV2luZG93KToKKyAg
ICAgICAgKG9uX2Vjb3JlX2V2YXNfcmVzaXplKToKKyAgICAgICAgKG9uX2tleV9kb3duKToKKyAg
ICAgICAgKGJyb3dzZXJDcmVhdGUpOgorICAgICAgICAobWFpbik6CisKIDIwMTItMDktMjcgIEFs
ZXhhbmRyZSBFbGlhcyAgPGFlbGlhc0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW2Nocm9taXVt
XSBEdW1wUmVuZGVyVHJlZSBzdXBwb3J0IGZvciBzb2Z0d2FyZSBjb21wb3NpdGluZwpkaWZmIC0t
Z2l0IGEvVG9vbHMvTWluaUJyb3dzZXIvZWZsL21haW4uYyBiL1Rvb2xzL01pbmlCcm93c2VyL2Vm
bC9tYWluLmMKaW5kZXggYjQ0ZTUxNGExMGRjNjI0MTBmYmJjMGQ0OGY5N2RhMDcxYjNjYjU0OS4u
ZWNiMmY0ZmRjMjgzY2Y0OTU1MmEyMTE2YzRhZTQ3ODExZGJjYTkwZCAxMDA2NDQKLS0tIGEvVG9v
bHMvTWluaUJyb3dzZXIvZWZsL21haW4uYworKysgYi9Ub29scy9NaW5pQnJvd3Nlci9lZmwvbWFp
bi5jCkBAIC0zNyw2ICszNyw4IEBAIHN0YXRpYyBjb25zdCBjaGFyIEFQUF9OQU1FW10gPSAiRUZM
IE1pbmlCcm93c2VyIjsKICAgICB9IHdoaWxlICgwKQogCiBzdGF0aWMgaW50IHZlcmJvc2UgPSAw
Oworc3RhdGljIEVpbmFfTGlzdCAqd2luZG93cyA9IE5VTEw7CitzdGF0aWMgY2hhciAqZW5naW5l
ID0gTlVMTDsKIAogdHlwZWRlZiBzdHJ1Y3QgX01pbmlCcm93c2VyIHsKICAgICBFY29yZV9FdmFz
ICplZTsKQEAgLTcwLDI2ICs3Miw2NyBAQCBzdGF0aWMgY29uc3QgRWNvcmVfR2V0b3B0IG9wdGlv
bnMgPSB7CiAgICAgfQogfTsKIAorc3RhdGljIGludCBicm93c2VyQ3JlYXRlKGNvbnN0IGNoYXIg
KnVybCwgY29uc3QgY2hhciAqZW5naW5lKTsKK3N0YXRpYyB2b2lkIGJyb3dzZXJEZXN0cm95KEVj
b3JlX0V2YXMgKmVlKTsKK3N0YXRpYyB2b2lkIGNsb3NlV2luZG93KEVjb3JlX0V2YXMgKmVlKTsK
Kworc3RhdGljIE1pbmlCcm93c2VyICpmaW5kX2FwcF9mcm9tX2VlKEVjb3JlX0V2YXMgKmVlKQor
eworICAgIEVpbmFfTGlzdCAqbDsKKyAgICB2b2lkICpkYXRhOworCisgICAgRUlOQV9MSVNUX0ZP
UkVBQ0god2luZG93cywgbCwgZGF0YSkKKyAgICB7CisgICAgICAgIE1pbmlCcm93c2VyICphcHAg
PSAoTWluaUJyb3dzZXIgKikgZGF0YTsKKyAgICAgICAgaWYgKGFwcC0+ZWUgPT0gZWUpCisgICAg
ICAgICAgICByZXR1cm4gYXBwOworICAgIH0KKyAgICByZXR1cm4gTlVMTDsKK30KKwogc3RhdGlj
IEVpbmFfQm9vbCBtYWluX3NpZ25hbF9leGl0KHZvaWQgKmRhdGEsIGludCBldl90eXBlLCB2b2lk
ICpldikKIHsKLSAgICBlY29yZV9tYWluX2xvb3BfcXVpdCgpOworICAgIE1pbmlCcm93c2VyICph
cHA7CisKKyAgICB3aGlsZSAod2luZG93cykgeworICAgICAgICBhcHAgPSAoTWluaUJyb3dzZXIq
KSBlaW5hX2xpc3RfZGF0YV9nZXQod2luZG93cyk7CisgICAgICAgIGNsb3NlV2luZG93KGFwcC0+
ZWUpOworICAgIH0KKyAgICBpZiAoIWVpbmFfbGlzdF9jb3VudCh3aW5kb3dzKSkKKyAgICAgICAg
ZWNvcmVfbWFpbl9sb29wX3F1aXQoKTsKICAgICByZXR1cm4gRUlOQV9UUlVFOwogfQogCitzdGF0
aWMgdm9pZAorYnJvd3NlckRlc3Ryb3koRWNvcmVfRXZhcyAqZWUpCit7CisgICAgZWNvcmVfZXZh
c19mcmVlKGVlKTsKKyAgICBpZiAoIWVpbmFfbGlzdF9jb3VudCh3aW5kb3dzKSkKKyAgICAgICAg
ZWNvcmVfbWFpbl9sb29wX3F1aXQoKTsKK30KKwogc3RhdGljIHZvaWQgY2xvc2VXaW5kb3coRWNv
cmVfRXZhcyAqZWUpCiB7Ci0gICAgZWNvcmVfbWFpbl9sb29wX3F1aXQoKTsKKyAgICBNaW5pQnJv
d3NlciAqYXBwOworCisgICAgYXBwID0gZmluZF9hcHBfZnJvbV9lZShlZSk7CisgICAgdXJsX2Jh
cl9kZWwoYXBwLT51cmxfYmFyKTsKKyAgICB3aW5kb3dzID0gZWluYV9saXN0X3JlbW92ZSh3aW5k
b3dzLCBhcHApOworICAgIGJyb3dzZXJEZXN0cm95KGVlKTsKKyAgICBmcmVlKGFwcCk7CiB9CiAK
IHN0YXRpYyB2b2lkIG9uX2Vjb3JlX2V2YXNfcmVzaXplKEVjb3JlX0V2YXMgKmVlKQogeworICAg
IE1pbmlCcm93c2VyICphcHA7CiAgICAgRXZhc19PYmplY3QgKndlYnZpZXc7CiAgICAgaW50IHcs
IGg7CiAKICAgICBlY29yZV9ldmFzX2dlb21ldHJ5X2dldChlZSwgTlVMTCwgTlVMTCwgJncsICZo
KTsKIAogICAgIC8qIFJlc2l6ZSBVUkwgYmFyICovCi0gICAgdXJsX2Jhcl93aWR0aF9zZXQoYnJv
d3Nlci0+dXJsX2Jhciwgdyk7CisgICAgYXBwID0gZmluZF9hcHBfZnJvbV9lZShlZSk7CisgICAg
dXJsX2Jhcl93aWR0aF9zZXQoYXBwLT51cmxfYmFyLCB3KTsKIAogICAgIHdlYnZpZXcgPSBldmFz
X29iamVjdF9uYW1lX2ZpbmQoZWNvcmVfZXZhc19nZXQoZWUpLCAiYnJvd3NlciIpOwogICAgIGV2
YXNfb2JqZWN0X21vdmUod2VidmlldywgMCwgVVJMX0JBUl9IRUlHSFQpOwpAQCAtMTE5LDExICsx
NjIsMTQgQEAgb25fa2V5X2Rvd24odm9pZCAqZGF0YSwgRXZhcyAqZSwgRXZhc19PYmplY3QgKm9i
aiwgdm9pZCAqZXZlbnRfaW5mbykKICAgICAgICAgaW5mbygiU2V0IGVuY29kaW5nIChGMykgcHJl
c3NlZC4gTmV3IGVuY29kaW5nIHRvICVzIiwgZW5jb2RpbmdzW2N1cnJlbnRFbmNvZGluZ10pOwog
ICAgICAgICBld2tfdmlld19zZXR0aW5nX2VuY29kaW5nX2N1c3RvbV9zZXQob2JqLCBlbmNvZGlu
Z3NbY3VycmVudEVuY29kaW5nXSk7CiAgICAgfSBlbHNlIGlmICghc3RyY21wKGV2LT5rZXksICJG
NSIpKSB7Ci0gICAgICAgICAgICBpbmZvKCJSZWxvYWQgKEY1KSB3YXMgcHJlc3NlZCwgcmVsb2Fk
aW5nLlxuIik7Ci0gICAgICAgICAgICBld2tfdmlld19yZWxvYWQob2JqKTsKKyAgICAgICAgaW5m
bygiUmVsb2FkIChGNSkgd2FzIHByZXNzZWQsIHJlbG9hZGluZy5cbiIpOworICAgICAgICBld2tf
dmlld19yZWxvYWQob2JqKTsKICAgICB9IGVsc2UgaWYgKCFzdHJjbXAoZXYtPmtleSwgIkY2Iikp
IHsKLSAgICAgICAgICAgIGluZm8oIlN0b3AgKEY2KSB3YXMgcHJlc3NlZCwgc3RvcCBsb2FkaW5n
LlxuIik7Ci0gICAgICAgICAgICBld2tfdmlld19zdG9wKG9iaik7CisgICAgICAgIGluZm8oIlN0
b3AgKEY2KSB3YXMgcHJlc3NlZCwgc3RvcCBsb2FkaW5nLlxuIik7CisgICAgICAgIGV3a192aWV3
X3N0b3Aob2JqKTsKKyAgICB9IGVsc2UgaWYgKCFzdHJjbXAoZXYtPmtleSwgIkY5IikpIHsKKyAg
ICAgICAgaW5mbygiQ3JlYXRlIG5ldyB3aW5kb3cgKEY5KSB3YXMgcHJlc3NlZC5cbiIpOworICAg
ICAgICBicm93c2VyQ3JlYXRlKERFRkFVTFRfVVJMLCBlbmdpbmUpOwogICAgIH0KIH0KIApAQCAt
MjExLDcgKzI1Nyw3IEBAIHF1aXQoRWluYV9Cb29sIHN1Y2Nlc3MsIGNvbnN0IGNoYXIgKm1zZykK
ICAgICByZXR1cm4gRVhJVF9TVUNDRVNTOwogfQogCi1zdGF0aWMgTWluaUJyb3dzZXIgKmJyb3dz
ZXJDcmVhdGUoY29uc3QgY2hhciAqdXJsLCBjb25zdCBjaGFyICplbmdpbmUpCitzdGF0aWMgaW50
IGJyb3dzZXJDcmVhdGUoY29uc3QgY2hhciAqdXJsLCBjb25zdCBjaGFyICplbmdpbmUpCiB7CiAg
ICAgTWluaUJyb3dzZXIgKmFwcCA9IG1hbGxvYyhzaXplb2YoTWluaUJyb3dzZXIpKTsKIApAQCAt
MjQ5LDYgKzI5NSw3IEBAIHN0YXRpYyBNaW5pQnJvd3NlciAqYnJvd3NlckNyZWF0ZShjb25zdCBj
aGFyICp1cmwsIGNvbnN0IGNoYXIgKmVuZ2luZSkKICAgICBhcHAtPnVybF9iYXIgPSB1cmxfYmFy
X2FkZChhcHAtPmJyb3dzZXIsIERFRkFVTFRfV0lEVEgpOwogCiAgICAgZXdrX3ZpZXdfdXJpX3Nl
dChhcHAtPmJyb3dzZXIsIHVybCk7CisgICAgd2luZG93cyA9IGVpbmFfbGlzdF9hcHBlbmQod2lu
ZG93cywgYXBwKTsKIAogICAgIHJldHVybiBhcHA7CiB9CkBAIC0yNTYsNyArMzAzLDYgQEAgc3Rh
dGljIE1pbmlCcm93c2VyICpicm93c2VyQ3JlYXRlKGNvbnN0IGNoYXIgKnVybCwgY29uc3QgY2hh
ciAqZW5naW5lKQogaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKIHsKICAgICBpbnQg
YXJncyA9IDE7Ci0gICAgY2hhciAqZW5naW5lID0gTlVMTDsKICAgICB1bnNpZ25lZCBjaGFyIHF1
aXRPcHRpb24gPSAwOwogCiAgICAgRWNvcmVfR2V0b3B0X1ZhbHVlIHZhbHVlc1tdID0gewpAQCAt
MjgyLDIyICszMjgsMTYgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKIAogICAg
IGlmIChhcmdzIDwgYXJnYykgewogICAgICAgICBjaGFyICp1cmwgPSB1cmxfZnJvbV91c2VyX2lu
cHV0KGFyZ3ZbYXJnc10pOwotICAgICAgICBicm93c2VyID0gYnJvd3NlckNyZWF0ZSh1cmwsIGVu
Z2luZSk7CisgICAgICAgIGJyb3dzZXJDcmVhdGUodXJsLCBlbmdpbmUpOwogICAgICAgICBmcmVl
KHVybCk7CiAgICAgfSBlbHNlCi0gICAgICAgIGJyb3dzZXIgPSBicm93c2VyQ3JlYXRlKERFRkFV
TFRfVVJMLCBlbmdpbmUpOwotCi0gICAgaWYgKCFicm93c2VyKQotICAgICAgICByZXR1cm4gcXVp
dChFSU5BX0ZBTFNFLCAiRVJST1I6IGNvdWxkIG5vdCBjcmVhdGUgYnJvd3Nlci5cbiIpOworICAg
ICAgICBicm93c2VyQ3JlYXRlKERFRkFVTFRfVVJMLCBlbmdpbmUpOwogCi0gICAgRWNvcmVfRXZl
bnRfSGFuZGxlciAqaGFuZGxlID0gZWNvcmVfZXZlbnRfaGFuZGxlcl9hZGQoRUNPUkVfRVZFTlRf
U0lHTkFMX0VYSVQsIG1haW5fc2lnbmFsX2V4aXQsIDApOworICAgIEVjb3JlX0V2ZW50X0hhbmRs
ZXIgKmhhbmRsZSA9IGVjb3JlX2V2ZW50X2hhbmRsZXJfYWRkKEVDT1JFX0VWRU5UX1NJR05BTF9F
WElULCBtYWluX3NpZ25hbF9leGl0LCAmd2luZG93cyk7CiAKICAgICBlY29yZV9tYWluX2xvb3Bf
YmVnaW4oKTsKIAotICAgIHVybF9iYXJfZGVsKGJyb3dzZXItPnVybF9iYXIpOwogICAgIGVjb3Jl
X2V2ZW50X2hhbmRsZXJfZGVsKGhhbmRsZSk7Ci0gICAgZWNvcmVfZXZhc19mcmVlKGJyb3dzZXIt
PmVlKTsKLSAgICBmcmVlKGJyb3dzZXIpOwogCiAgICAgcmV0dXJuIHF1aXQoRUlOQV9UUlVFLCBO
VUxMKTsKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>166274</attachid>
            <date>2012-09-28 10:33:37 -0700</date>
            <delta_ts>2012-10-01 06:28:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-97884-20120929023253.patch</filename>
            <type>text/plain</type>
            <size>6689</size>
            <attacher name="Jinwoo Song">jinwoo7.song</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI5ODk5CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMGNhYWFmNGM1OWE2Nzc5MjVmYmM5NDQ0ZTJjZTBlY2Jh
MTk0MjJiZi4uY2QyMDBmNjNhNTY4NzY3ZTcwOTc4MmRhYjI1MWYzMWI5YWQ0NjNiOCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIw
IEBACisyMDEyLTA5LTI4ICBKaW53b28gU29uZyAgPGppbndvbzcuc29uZ0BzYW1zdW5nLmNvbT4K
KworICAgICAgICBbRUZMXVtXSzJdIFN1cHBvcnQgbXVsdGlwbGUgd2luZG93IGNyZWF0aW9uIGZv
ciBNaW5pQnJvd3NlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9OTc4ODQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBJbXBsZW1lbnQgdGhlIG11bHRpcGxlIHdpbmRvdyBjcmVhdGlvbiBmb3IgTWluaUJyb3dz
ZXIgYW5kIGJpbmQgdGhlICdGOScga2V5IGZvciBvcGVuaW5nIGEgbmV3IHdpbmRvdy4KKworICAg
ICAgICAqIE1pbmlCcm93c2VyL2VmbC9tYWluLmM6CisgICAgICAgIChtYWluX3NpZ25hbF9leGl0
KToKKyAgICAgICAgKGNsb3NlV2luZG93KToKKyAgICAgICAgKG9uX2Vjb3JlX2V2YXNfcmVzaXpl
KToKKyAgICAgICAgKG9uX2tleV9kb3duKToKKyAgICAgICAgKGJyb3dzZXJDcmVhdGUpOgorICAg
ICAgICAobWFpbik6CisKIDIwMTItMDktMjggIEtyaXN0w7NmIEtvc3p0ecOzICA8a2tyaXN0b2ZA
aW5mLnUtc3plZ2VkLmh1PgogCiAgICAgICAgIFtOUldUXSBYdmZiRHJpdmVyIHNob3VsZCBjaG9v
c2UgdGhlIG5leHQgZnJlZSBkaXNwbGF5CmRpZmYgLS1naXQgYS9Ub29scy9NaW5pQnJvd3Nlci9l
ZmwvbWFpbi5jIGIvVG9vbHMvTWluaUJyb3dzZXIvZWZsL21haW4uYwppbmRleCBiNDRlNTE0YTEw
ZGM2MjQxMGZiYmMwZDQ4Zjk3ZGEwNzFiM2NiNTQ5Li5hZjYwZWY1M2MxN2FjMjhjZjQ2NGQyNzIx
YTIyNThlYWQzOTBiOTQ4IDEwMDY0NAotLS0gYS9Ub29scy9NaW5pQnJvd3Nlci9lZmwvbWFpbi5j
CisrKyBiL1Rvb2xzL01pbmlCcm93c2VyL2VmbC9tYWluLmMKQEAgLTM3LDYgKzM3LDggQEAgc3Rh
dGljIGNvbnN0IGNoYXIgQVBQX05BTUVbXSA9ICJFRkwgTWluaUJyb3dzZXIiOwogICAgIH0gd2hp
bGUgKDApCiAKIHN0YXRpYyBpbnQgdmVyYm9zZSA9IDA7CitzdGF0aWMgRWluYV9MaXN0ICp3aW5k
b3dzID0gTlVMTDsKK3N0YXRpYyBjaGFyICplbmdpbmUgPSBOVUxMOwogCiB0eXBlZGVmIHN0cnVj
dCBfTWluaUJyb3dzZXIgewogICAgIEVjb3JlX0V2YXMgKmVlOwpAQCAtNDUsOCArNDcsNiBAQCB0
eXBlZGVmIHN0cnVjdCBfTWluaUJyb3dzZXIgewogICAgIFVybF9CYXIgKnVybF9iYXI7CiB9IE1p
bmlCcm93c2VyOwogCi1NaW5pQnJvd3NlciAqYnJvd3NlcjsKLQogc3RhdGljIGNvbnN0IEVjb3Jl
X0dldG9wdCBvcHRpb25zID0gewogICAgICJNaW5pQnJvd3NlciIsCiAgICAgIiVwcm9nIFtvcHRp
b25zXSBbdXJsXSIsCkBAIC03MCwyNiArNzAsNjMgQEAgc3RhdGljIGNvbnN0IEVjb3JlX0dldG9w
dCBvcHRpb25zID0gewogICAgIH0KIH07CiAKK3N0YXRpYyBFaW5hX0Jvb2wgYnJvd3NlckNyZWF0
ZShjb25zdCBjaGFyICp1cmwsIGNvbnN0IGNoYXIgKmVuZ2luZSk7CitzdGF0aWMgdm9pZCBjbG9z
ZVdpbmRvdyhFY29yZV9FdmFzICplZSk7CisKK3N0YXRpYyBNaW5pQnJvd3NlciAqZmluZF9hcHBf
ZnJvbV9lZShFY29yZV9FdmFzICplZSkKK3sKKyAgICBFaW5hX0xpc3QgKmw7CisgICAgdm9pZCAq
ZGF0YTsKKworICAgIEVJTkFfTElTVF9GT1JFQUNIKHdpbmRvd3MsIGwsIGRhdGEpCisgICAgewor
ICAgICAgICBNaW5pQnJvd3NlciAqYXBwID0gKE1pbmlCcm93c2VyICopZGF0YTsKKyAgICAgICAg
aWYgKGFwcC0+ZWUgPT0gZWUpCisgICAgICAgICAgICByZXR1cm4gYXBwOworICAgIH0KKyAgICBy
ZXR1cm4gTlVMTDsKK30KKwogc3RhdGljIEVpbmFfQm9vbCBtYWluX3NpZ25hbF9leGl0KHZvaWQg
KmRhdGEsIGludCBldl90eXBlLCB2b2lkICpldikKIHsKLSAgICBlY29yZV9tYWluX2xvb3BfcXVp
dCgpOworICAgIE1pbmlCcm93c2VyICphcHA7CisKKyAgICB3aGlsZSAod2luZG93cykgeworICAg
ICAgICBhcHAgPSAoTWluaUJyb3dzZXIgKillaW5hX2xpc3RfZGF0YV9nZXQod2luZG93cyk7Cisg
ICAgICAgIGNsb3NlV2luZG93KGFwcC0+ZWUpOworICAgIH0KKyAgICBpZiAoIWVpbmFfbGlzdF9j
b3VudCh3aW5kb3dzKSkKKyAgICAgICAgZWNvcmVfbWFpbl9sb29wX3F1aXQoKTsKICAgICByZXR1
cm4gRUlOQV9UUlVFOwogfQogCiBzdGF0aWMgdm9pZCBjbG9zZVdpbmRvdyhFY29yZV9FdmFzICpl
ZSkKIHsKLSAgICBlY29yZV9tYWluX2xvb3BfcXVpdCgpOworICAgIE1pbmlCcm93c2VyICphcHAg
PSBmaW5kX2FwcF9mcm9tX2VlKGVlKTsKKyAgICBpZiAoIWFwcCkKKyAgICAgICAgcmV0dXJuOwor
ICAgIHVybF9iYXJfZGVsKGFwcC0+dXJsX2Jhcik7CisgICAgd2luZG93cyA9IGVpbmFfbGlzdF9y
ZW1vdmUod2luZG93cywgYXBwKTsKKyAgICBlY29yZV9ldmFzX2ZyZWUoZWUpOworICAgIGlmICgh
ZWluYV9saXN0X2NvdW50KHdpbmRvd3MpKSB7CisgICAgICAgIGZyZWUoYXBwKTsKKyAgICAgICAg
ZWNvcmVfbWFpbl9sb29wX3F1aXQoKTsKKyAgICB9CiB9CiAKIHN0YXRpYyB2b2lkIG9uX2Vjb3Jl
X2V2YXNfcmVzaXplKEVjb3JlX0V2YXMgKmVlKQogeworICAgIE1pbmlCcm93c2VyICphcHA7CiAg
ICAgRXZhc19PYmplY3QgKndlYnZpZXc7CiAgICAgaW50IHcsIGg7CiAKICAgICBlY29yZV9ldmFz
X2dlb21ldHJ5X2dldChlZSwgTlVMTCwgTlVMTCwgJncsICZoKTsKIAogICAgIC8qIFJlc2l6ZSBV
UkwgYmFyICovCi0gICAgdXJsX2Jhcl93aWR0aF9zZXQoYnJvd3Nlci0+dXJsX2Jhciwgdyk7Cisg
ICAgYXBwID0gZmluZF9hcHBfZnJvbV9lZShlZSk7CisgICAgaWYgKCFhcHApCisgICAgICAgIHJl
dHVybjsKKyAgICB1cmxfYmFyX3dpZHRoX3NldChhcHAtPnVybF9iYXIsIHcpOwogCiAgICAgd2Vi
dmlldyA9IGV2YXNfb2JqZWN0X25hbWVfZmluZChlY29yZV9ldmFzX2dldChlZSksICJicm93c2Vy
Iik7CiAgICAgZXZhc19vYmplY3RfbW92ZSh3ZWJ2aWV3LCAwLCBVUkxfQkFSX0hFSUdIVCk7CkBA
IC0xMTksMTEgKzE1NiwxNCBAQCBvbl9rZXlfZG93bih2b2lkICpkYXRhLCBFdmFzICplLCBFdmFz
X09iamVjdCAqb2JqLCB2b2lkICpldmVudF9pbmZvKQogICAgICAgICBpbmZvKCJTZXQgZW5jb2Rp
bmcgKEYzKSBwcmVzc2VkLiBOZXcgZW5jb2RpbmcgdG8gJXMiLCBlbmNvZGluZ3NbY3VycmVudEVu
Y29kaW5nXSk7CiAgICAgICAgIGV3a192aWV3X3NldHRpbmdfZW5jb2RpbmdfY3VzdG9tX3NldChv
YmosIGVuY29kaW5nc1tjdXJyZW50RW5jb2RpbmddKTsKICAgICB9IGVsc2UgaWYgKCFzdHJjbXAo
ZXYtPmtleSwgIkY1IikpIHsKLSAgICAgICAgICAgIGluZm8oIlJlbG9hZCAoRjUpIHdhcyBwcmVz
c2VkLCByZWxvYWRpbmcuXG4iKTsKLSAgICAgICAgICAgIGV3a192aWV3X3JlbG9hZChvYmopOwor
ICAgICAgICBpbmZvKCJSZWxvYWQgKEY1KSB3YXMgcHJlc3NlZCwgcmVsb2FkaW5nLlxuIik7Cisg
ICAgICAgIGV3a192aWV3X3JlbG9hZChvYmopOwogICAgIH0gZWxzZSBpZiAoIXN0cmNtcChldi0+
a2V5LCAiRjYiKSkgewotICAgICAgICAgICAgaW5mbygiU3RvcCAoRjYpIHdhcyBwcmVzc2VkLCBz
dG9wIGxvYWRpbmcuXG4iKTsKLSAgICAgICAgICAgIGV3a192aWV3X3N0b3Aob2JqKTsKKyAgICAg
ICAgaW5mbygiU3RvcCAoRjYpIHdhcyBwcmVzc2VkLCBzdG9wIGxvYWRpbmcuXG4iKTsKKyAgICAg
ICAgZXdrX3ZpZXdfc3RvcChvYmopOworICAgIH0gZWxzZSBpZiAoIXN0cmNtcChldi0+a2V5LCAi
RjkiKSkgeworICAgICAgICBpbmZvKCJDcmVhdGUgbmV3IHdpbmRvdyAoRjkpIHdhcyBwcmVzc2Vk
LlxuIik7CisgICAgICAgIGJyb3dzZXJDcmVhdGUoREVGQVVMVF9VUkwsIGVuZ2luZSk7CiAgICAg
fQogfQogCkBAIC0yMTEsMTMgKzI1MSwyMCBAQCBxdWl0KEVpbmFfQm9vbCBzdWNjZXNzLCBjb25z
dCBjaGFyICptc2cpCiAgICAgcmV0dXJuIEVYSVRfU1VDQ0VTUzsKIH0KIAotc3RhdGljIE1pbmlC
cm93c2VyICpicm93c2VyQ3JlYXRlKGNvbnN0IGNoYXIgKnVybCwgY29uc3QgY2hhciAqZW5naW5l
KQorc3RhdGljIEVpbmFfQm9vbCBicm93c2VyQ3JlYXRlKGNvbnN0IGNoYXIgKnVybCwgY29uc3Qg
Y2hhciAqZW5naW5lKQogewogICAgIE1pbmlCcm93c2VyICphcHAgPSBtYWxsb2Moc2l6ZW9mKE1p
bmlCcm93c2VyKSk7CisgICAgaWYgKCFhcHApIHsKKyAgICAgICAgaW5mbygiRVJST1I6IGNvdWxk
IG5vdCBjcmVhdGUgTWluaUJyb3dzZXIgd2luZG93XG4iKTsKKyAgICAgICAgcmV0dXJuIEVJTkFf
RkFMU0U7CisgICAgfQogCiAgICAgYXBwLT5lZSA9IGVjb3JlX2V2YXNfbmV3KGVuZ2luZSwgMCwg
MCwgREVGQVVMVF9XSURUSCwgREVGQVVMVF9IRUlHSFQsIDApOwotICAgIGlmICghYXBwLT5lZSkK
LSAgICAgICAgcmV0dXJuIDA7CisgICAgaWYgKCFhcHAtPmVlKSB7CisgICAgICAgIGluZm8oIkVS
Uk9SOiBjb3VsZCBub3QgY29uc3RydWN0IGVjb3JlLWV2YXNcbiIpOworICAgICAgICBmcmVlKGFw
cCk7CisgICAgICAgIHJldHVybiBFSU5BX0ZBTFNFOworICAgIH0KIAogICAgIGVjb3JlX2V2YXNf
dGl0bGVfc2V0KGFwcC0+ZWUsIEFQUF9OQU1FKTsKICAgICBlY29yZV9ldmFzX2NhbGxiYWNrX3Jl
c2l6ZV9zZXQoYXBwLT5lZSwgb25fZWNvcmVfZXZhc19yZXNpemUpOwpAQCAtMjI2LDYgKzI3Mywx
MSBAQCBzdGF0aWMgTWluaUJyb3dzZXIgKmJyb3dzZXJDcmVhdGUoY29uc3QgY2hhciAqdXJsLCBj
b25zdCBjaGFyICplbmdpbmUpCiAgICAgZWNvcmVfZXZhc19jYWxsYmFja19kZWxldGVfcmVxdWVz
dF9zZXQoYXBwLT5lZSwgY2xvc2VXaW5kb3cpOwogCiAgICAgYXBwLT5ldmFzID0gZWNvcmVfZXZh
c19nZXQoYXBwLT5lZSk7CisgICAgaWYgKCFhcHAtPmV2YXMpIHsKKyAgICAgICAgaW5mbygiRVJS
T1I6IGNvdWxkIG5vdCBnZXQgZXZhcyBmcm9tIGV2YXMtZWNvcmVcbiIpOworICAgICAgICBmcmVl
KGFwcCk7CisgICAgICAgIHJldHVybiBFSU5BX0ZBTFNFOworICAgIH0KIAogICAgIC8qIENyZWF0
ZSB3ZWJ2aWV3ICovCiAgICAgYXBwLT5icm93c2VyID0gZXdrX3ZpZXdfYWRkKGFwcC0+ZXZhcyk7
CkBAIC0yNDksMTQgKzMwMSwxNCBAQCBzdGF0aWMgTWluaUJyb3dzZXIgKmJyb3dzZXJDcmVhdGUo
Y29uc3QgY2hhciAqdXJsLCBjb25zdCBjaGFyICplbmdpbmUpCiAgICAgYXBwLT51cmxfYmFyID0g
dXJsX2Jhcl9hZGQoYXBwLT5icm93c2VyLCBERUZBVUxUX1dJRFRIKTsKIAogICAgIGV3a192aWV3
X3VyaV9zZXQoYXBwLT5icm93c2VyLCB1cmwpOworICAgIHdpbmRvd3MgPSBlaW5hX2xpc3RfYXBw
ZW5kKHdpbmRvd3MsIGFwcCk7CiAKLSAgICByZXR1cm4gYXBwOworICAgIHJldHVybiBFSU5BX1RS
VUU7CiB9CiAKIGludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCiB7CiAgICAgaW50IGFy
Z3MgPSAxOwotICAgIGNoYXIgKmVuZ2luZSA9IE5VTEw7CiAgICAgdW5zaWduZWQgY2hhciBxdWl0
T3B0aW9uID0gMDsKIAogICAgIEVjb3JlX0dldG9wdF9WYWx1ZSB2YWx1ZXNbXSA9IHsKQEAgLTI4
MiwyMiArMzM0LDIwIEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCiAKICAgICBp
ZiAoYXJncyA8IGFyZ2MpIHsKICAgICAgICAgY2hhciAqdXJsID0gdXJsX2Zyb21fdXNlcl9pbnB1
dChhcmd2W2FyZ3NdKTsKLSAgICAgICAgYnJvd3NlciA9IGJyb3dzZXJDcmVhdGUodXJsLCBlbmdp
bmUpOworICAgICAgICBpZiAoIWJyb3dzZXJDcmVhdGUodXJsLCBlbmdpbmUpKSB7CisgICAgICAg
ICAgICBmcmVlKHVybCk7CisgICAgICAgICAgICByZXR1cm4gcXVpdChFSU5BX0ZBTFNFLCAiRVJS
T1I6IGNvdWxkIG5vdCBjcmVhdGUgYnJvd3NlciB3aW5kb3dcbiIpOworICAgICAgICB9CiAgICAg
ICAgIGZyZWUodXJsKTsKLSAgICB9IGVsc2UKLSAgICAgICAgYnJvd3NlciA9IGJyb3dzZXJDcmVh
dGUoREVGQVVMVF9VUkwsIGVuZ2luZSk7Ci0KLSAgICBpZiAoIWJyb3dzZXIpCi0gICAgICAgIHJl
dHVybiBxdWl0KEVJTkFfRkFMU0UsICJFUlJPUjogY291bGQgbm90IGNyZWF0ZSBicm93c2VyLlxu
Iik7CisgICAgfSBlbHNlIGlmICghYnJvd3NlckNyZWF0ZShERUZBVUxUX1VSTCwgZW5naW5lKSkK
KyAgICAgICAgcmV0dXJuIHF1aXQoRUlOQV9GQUxTRSwgIkVSUk9SOiBjb3VsZCBub3QgY3JlYXRl
IGJyb3dzZXIgd2luZG93XG4iKTsKIAogICAgIEVjb3JlX0V2ZW50X0hhbmRsZXIgKmhhbmRsZSA9
IGVjb3JlX2V2ZW50X2hhbmRsZXJfYWRkKEVDT1JFX0VWRU5UX1NJR05BTF9FWElULCBtYWluX3Np
Z25hbF9leGl0LCAwKTsKIAogICAgIGVjb3JlX21haW5fbG9vcF9iZWdpbigpOwogCi0gICAgdXJs
X2Jhcl9kZWwoYnJvd3Nlci0+dXJsX2Jhcik7CiAgICAgZWNvcmVfZXZlbnRfaGFuZGxlcl9kZWwo
aGFuZGxlKTsKLSAgICBlY29yZV9ldmFzX2ZyZWUoYnJvd3Nlci0+ZWUpOwotICAgIGZyZWUoYnJv
d3Nlcik7CisgICAgZWluYV9saXN0X2ZyZWUod2luZG93cyk7CiAKICAgICByZXR1cm4gcXVpdChF
SU5BX1RSVUUsIE5VTEwpOwogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>166463</attachid>
            <date>2012-10-01 06:28:33 -0700</date>
            <delta_ts>2012-10-01 23:33:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-97884-20121001222741.patch</filename>
            <type>text/plain</type>
            <size>6743</size>
            <attacher name="Jinwoo Song">jinwoo7.song</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMwMDI2CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMTBmN2E3NGQwN2ZkOThiOWM1YTE4N2VjNjc0OTczMjY2
ZGQ0NjE3ZS4uOGM5MWQxMDJmNmUyYjAyNzYwM2MwN2NlYzM4ZThiZmQ1ZDI2MzBiNiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIy
IEBACisyMDEyLTEwLTAxICBKaW53b28gU29uZyAgPGppbndvbzcuc29uZ0BzYW1zdW5nLmNvbT4K
KworICAgICAgICBbRUZMXVtXSzJdIFN1cHBvcnQgbXVsdGlwbGUgd2luZG93IGNyZWF0aW9uIGZv
ciBNaW5pQnJvd3NlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9OTc4ODQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBJbXBsZW1lbnQgdGhlIG11bHRpcGxlIHdpbmRvdyBjcmVhdGlvbiBmb3IgTWluaUJyb3dz
ZXIgYW5kIGJpbmQgdGhlICdGOScga2V5IGZvciBvcGVuaW5nIGEgbmV3IHdpbmRvdy4KKyAgICAg
ICAgQWxzbywgY2hhbmdlZCB0aGUgZnVuY3Rpb24gbmFtZSBhY2NvcmRpbmcgdG8gRUZMIGNvZGlu
ZyBzdHlsZS4KKworICAgICAgICAqIE1pbmlCcm93c2VyL2VmbC9tYWluLmM6CisgICAgICAgIChj
bG9zZVdpbmRvdyk6CisgICAgICAgIChtYWluX3NpZ25hbF9leGl0KToKKyAgICAgICAgKG9uX2Vj
b3JlX2V2YXNfZGVsZXRlKToKKyAgICAgICAgKG9uX2Vjb3JlX2V2YXNfcmVzaXplKToKKyAgICAg
ICAgKG9uX2tleV9kb3duKToKKyAgICAgICAgKGJyb3dzZXJDcmVhdGUpOgorICAgICAgICAobWFp
bik6CisKIDIwMTItMTAtMDEgIENzYWJhIE9zenRyb2dvbsOhYyAgPG9zc3lAd2Via2l0Lm9yZz4K
IAogICAgICAgICBVbnJldmlld2VkLCB1cGRhdGUgdGhlIFVSTCBvZiB0aGUgU3plZ2VkIFNWTiBt
aXJyb3IuCmRpZmYgLS1naXQgYS9Ub29scy9NaW5pQnJvd3Nlci9lZmwvbWFpbi5jIGIvVG9vbHMv
TWluaUJyb3dzZXIvZWZsL21haW4uYwppbmRleCBiNDRlNTE0YTEwZGM2MjQxMGZiYmMwZDQ4Zjk3
ZGEwNzFiM2NiNTQ5Li4yNTExZjk3NjMzYzZiNjUwYTcxODEzOGM3YmM1YTIzYjVjY2Y0MmI0IDEw
MDY0NAotLS0gYS9Ub29scy9NaW5pQnJvd3Nlci9lZmwvbWFpbi5jCisrKyBiL1Rvb2xzL01pbmlC
cm93c2VyL2VmbC9tYWluLmMKQEAgLTM3LDYgKzM3LDggQEAgc3RhdGljIGNvbnN0IGNoYXIgQVBQ
X05BTUVbXSA9ICJFRkwgTWluaUJyb3dzZXIiOwogICAgIH0gd2hpbGUgKDApCiAKIHN0YXRpYyBp
bnQgdmVyYm9zZSA9IDA7CitzdGF0aWMgRWluYV9MaXN0ICp3aW5kb3dzID0gTlVMTDsKK3N0YXRp
YyBjaGFyICplbmdpbmUgPSBOVUxMOwogCiB0eXBlZGVmIHN0cnVjdCBfTWluaUJyb3dzZXIgewog
ICAgIEVjb3JlX0V2YXMgKmVlOwpAQCAtNDUsOCArNDcsNiBAQCB0eXBlZGVmIHN0cnVjdCBfTWlu
aUJyb3dzZXIgewogICAgIFVybF9CYXIgKnVybF9iYXI7CiB9IE1pbmlCcm93c2VyOwogCi1NaW5p
QnJvd3NlciAqYnJvd3NlcjsKLQogc3RhdGljIGNvbnN0IEVjb3JlX0dldG9wdCBvcHRpb25zID0g
ewogICAgICJNaW5pQnJvd3NlciIsCiAgICAgIiVwcm9nIFtvcHRpb25zXSBbdXJsXSIsCkBAIC03
MCwyNiArNzAsNjEgQEAgc3RhdGljIGNvbnN0IEVjb3JlX0dldG9wdCBvcHRpb25zID0gewogICAg
IH0KIH07CiAKK3N0YXRpYyBFaW5hX0Jvb2wgYnJvd3Nlcl9jcmVhdGUoY29uc3QgY2hhciAqdXJs
LCBjb25zdCBjaGFyICplbmdpbmUpOworCitzdGF0aWMgTWluaUJyb3dzZXIgKmJyb3dzZXJfZmlu
ZChFY29yZV9FdmFzICplZSkKK3sKKyAgICBFaW5hX0xpc3QgKmw7CisgICAgdm9pZCAqZGF0YTsK
KworICAgIEVJTkFfTElTVF9GT1JFQUNIKHdpbmRvd3MsIGwsIGRhdGEpCisgICAgeworICAgICAg
ICBNaW5pQnJvd3NlciAqYXBwID0gKE1pbmlCcm93c2VyICopZGF0YTsKKyAgICAgICAgaWYgKGFw
cC0+ZWUgPT0gZWUpCisgICAgICAgICAgICByZXR1cm4gYXBwOworICAgIH0KKyAgICByZXR1cm4g
TlVMTDsKK30KKworc3RhdGljIHZvaWQgYnJvd3Nlcl9jbG9zZShNaW5pQnJvd3NlciAqYXBwKQor
eworICAgIHdpbmRvd3MgPSBlaW5hX2xpc3RfcmVtb3ZlKHdpbmRvd3MsIGFwcCk7CisgICAgdXJs
X2Jhcl9kZWwoYXBwLT51cmxfYmFyKTsKKyAgICBlY29yZV9ldmFzX2ZyZWUoYXBwLT5lZSk7Cisg
ICAgZnJlZShhcHApOworfQorCiBzdGF0aWMgRWluYV9Cb29sIG1haW5fc2lnbmFsX2V4aXQodm9p
ZCAqZGF0YSwgaW50IGV2X3R5cGUsIHZvaWQgKmV2KQogeworICAgIHdoaWxlICh3aW5kb3dzKQor
ICAgICAgICBicm93c2VyX2Nsb3NlKChNaW5pQnJvd3NlciAqKWVpbmFfbGlzdF9kYXRhX2dldCh3
aW5kb3dzKSk7CiAgICAgZWNvcmVfbWFpbl9sb29wX3F1aXQoKTsKICAgICByZXR1cm4gRUlOQV9U
UlVFOwogfQogCi1zdGF0aWMgdm9pZCBjbG9zZVdpbmRvdyhFY29yZV9FdmFzICplZSkKK3N0YXRp
YyB2b2lkIG9uX2Vjb3JlX2V2YXNfZGVsZXRlKEVjb3JlX0V2YXMgKmVlKQogewotICAgIGVjb3Jl
X21haW5fbG9vcF9xdWl0KCk7CisgICAgTWluaUJyb3dzZXIgKmFwcCA9IGJyb3dzZXJfZmluZChl
ZSk7CisgICAgaWYgKCFhcHApCisgICAgICAgIHJldHVybjsKKyAgICBicm93c2VyX2Nsb3NlKGFw
cCk7CisgICAgaWYgKCF3aW5kb3dzKQorICAgICAgICBlY29yZV9tYWluX2xvb3BfcXVpdCgpOwog
fQogCiBzdGF0aWMgdm9pZCBvbl9lY29yZV9ldmFzX3Jlc2l6ZShFY29yZV9FdmFzICplZSkKIHsK
KyAgICBNaW5pQnJvd3NlciAqYXBwOwogICAgIEV2YXNfT2JqZWN0ICp3ZWJ2aWV3OwogICAgIGlu
dCB3LCBoOwogCiAgICAgZWNvcmVfZXZhc19nZW9tZXRyeV9nZXQoZWUsIE5VTEwsIE5VTEwsICZ3
LCAmaCk7CiAKICAgICAvKiBSZXNpemUgVVJMIGJhciAqLwotICAgIHVybF9iYXJfd2lkdGhfc2V0
KGJyb3dzZXItPnVybF9iYXIsIHcpOworICAgIGFwcCA9IGJyb3dzZXJfZmluZChlZSk7CisgICAg
aWYgKCFhcHApCisgICAgICAgIHJldHVybjsKKyAgICB1cmxfYmFyX3dpZHRoX3NldChhcHAtPnVy
bF9iYXIsIHcpOwogCiAgICAgd2VidmlldyA9IGV2YXNfb2JqZWN0X25hbWVfZmluZChlY29yZV9l
dmFzX2dldChlZSksICJicm93c2VyIik7CiAgICAgZXZhc19vYmplY3RfbW92ZSh3ZWJ2aWV3LCAw
LCBVUkxfQkFSX0hFSUdIVCk7CkBAIC0xMTksMTEgKzE1NCwxNCBAQCBvbl9rZXlfZG93bih2b2lk
ICpkYXRhLCBFdmFzICplLCBFdmFzX09iamVjdCAqb2JqLCB2b2lkICpldmVudF9pbmZvKQogICAg
ICAgICBpbmZvKCJTZXQgZW5jb2RpbmcgKEYzKSBwcmVzc2VkLiBOZXcgZW5jb2RpbmcgdG8gJXMi
LCBlbmNvZGluZ3NbY3VycmVudEVuY29kaW5nXSk7CiAgICAgICAgIGV3a192aWV3X3NldHRpbmdf
ZW5jb2RpbmdfY3VzdG9tX3NldChvYmosIGVuY29kaW5nc1tjdXJyZW50RW5jb2RpbmddKTsKICAg
ICB9IGVsc2UgaWYgKCFzdHJjbXAoZXYtPmtleSwgIkY1IikpIHsKLSAgICAgICAgICAgIGluZm8o
IlJlbG9hZCAoRjUpIHdhcyBwcmVzc2VkLCByZWxvYWRpbmcuXG4iKTsKLSAgICAgICAgICAgIGV3
a192aWV3X3JlbG9hZChvYmopOworICAgICAgICBpbmZvKCJSZWxvYWQgKEY1KSB3YXMgcHJlc3Nl
ZCwgcmVsb2FkaW5nLlxuIik7CisgICAgICAgIGV3a192aWV3X3JlbG9hZChvYmopOwogICAgIH0g
ZWxzZSBpZiAoIXN0cmNtcChldi0+a2V5LCAiRjYiKSkgewotICAgICAgICAgICAgaW5mbygiU3Rv
cCAoRjYpIHdhcyBwcmVzc2VkLCBzdG9wIGxvYWRpbmcuXG4iKTsKLSAgICAgICAgICAgIGV3a192
aWV3X3N0b3Aob2JqKTsKKyAgICAgICAgaW5mbygiU3RvcCAoRjYpIHdhcyBwcmVzc2VkLCBzdG9w
IGxvYWRpbmcuXG4iKTsKKyAgICAgICAgZXdrX3ZpZXdfc3RvcChvYmopOworICAgIH0gZWxzZSBp
ZiAoIXN0cmNtcChldi0+a2V5LCAiRjkiKSkgeworICAgICAgICBpbmZvKCJDcmVhdGUgbmV3IHdp
bmRvdyAoRjkpIHdhcyBwcmVzc2VkLlxuIik7CisgICAgICAgIGJyb3dzZXJfY3JlYXRlKERFRkFV
TFRfVVJMLCBlbmdpbmUpOwogICAgIH0KIH0KIApAQCAtMjExLDIxICsyNDksMzMgQEAgcXVpdChF
aW5hX0Jvb2wgc3VjY2VzcywgY29uc3QgY2hhciAqbXNnKQogICAgIHJldHVybiBFWElUX1NVQ0NF
U1M7CiB9CiAKLXN0YXRpYyBNaW5pQnJvd3NlciAqYnJvd3NlckNyZWF0ZShjb25zdCBjaGFyICp1
cmwsIGNvbnN0IGNoYXIgKmVuZ2luZSkKK3N0YXRpYyBFaW5hX0Jvb2wgYnJvd3Nlcl9jcmVhdGUo
Y29uc3QgY2hhciAqdXJsLCBjb25zdCBjaGFyICplbmdpbmUpCiB7CiAgICAgTWluaUJyb3dzZXIg
KmFwcCA9IG1hbGxvYyhzaXplb2YoTWluaUJyb3dzZXIpKTsKKyAgICBpZiAoIWFwcCkgeworICAg
ICAgICBpbmZvKCJFUlJPUjogY291bGQgbm90IGNyZWF0ZSBNaW5pQnJvd3NlciB3aW5kb3dcbiIp
OworICAgICAgICByZXR1cm4gRUlOQV9GQUxTRTsKKyAgICB9CiAKICAgICBhcHAtPmVlID0gZWNv
cmVfZXZhc19uZXcoZW5naW5lLCAwLCAwLCBERUZBVUxUX1dJRFRILCBERUZBVUxUX0hFSUdIVCwg
MCk7Ci0gICAgaWYgKCFhcHAtPmVlKQotICAgICAgICByZXR1cm4gMDsKKyAgICBpZiAoIWFwcC0+
ZWUpIHsKKyAgICAgICAgaW5mbygiRVJST1I6IGNvdWxkIG5vdCBjb25zdHJ1Y3QgZWNvcmUtZXZh
c1xuIik7CisgICAgICAgIGZyZWUoYXBwKTsKKyAgICAgICAgcmV0dXJuIEVJTkFfRkFMU0U7Cisg
ICAgfQogCiAgICAgZWNvcmVfZXZhc190aXRsZV9zZXQoYXBwLT5lZSwgQVBQX05BTUUpOwogICAg
IGVjb3JlX2V2YXNfY2FsbGJhY2tfcmVzaXplX3NldChhcHAtPmVlLCBvbl9lY29yZV9ldmFzX3Jl
c2l6ZSk7CiAgICAgZWNvcmVfZXZhc19ib3JkZXJsZXNzX3NldChhcHAtPmVlLCAwKTsKICAgICBl
Y29yZV9ldmFzX3Nob3coYXBwLT5lZSk7Ci0gICAgZWNvcmVfZXZhc19jYWxsYmFja19kZWxldGVf
cmVxdWVzdF9zZXQoYXBwLT5lZSwgY2xvc2VXaW5kb3cpOworICAgIGVjb3JlX2V2YXNfY2FsbGJh
Y2tfZGVsZXRlX3JlcXVlc3Rfc2V0KGFwcC0+ZWUsIG9uX2Vjb3JlX2V2YXNfZGVsZXRlKTsKIAog
ICAgIGFwcC0+ZXZhcyA9IGVjb3JlX2V2YXNfZ2V0KGFwcC0+ZWUpOworICAgIGlmICghYXBwLT5l
dmFzKSB7CisgICAgICAgIGluZm8oIkVSUk9SOiBjb3VsZCBub3QgZ2V0IGV2YXMgZnJvbSBldmFz
LWVjb3JlXG4iKTsKKyAgICAgICAgZnJlZShhcHApOworICAgICAgICByZXR1cm4gRUlOQV9GQUxT
RTsKKyAgICB9CiAKICAgICAvKiBDcmVhdGUgd2VidmlldyAqLwogICAgIGFwcC0+YnJvd3NlciA9
IGV3a192aWV3X2FkZChhcHAtPmV2YXMpOwpAQCAtMjQ5LDE0ICsyOTksMTQgQEAgc3RhdGljIE1p
bmlCcm93c2VyICpicm93c2VyQ3JlYXRlKGNvbnN0IGNoYXIgKnVybCwgY29uc3QgY2hhciAqZW5n
aW5lKQogICAgIGFwcC0+dXJsX2JhciA9IHVybF9iYXJfYWRkKGFwcC0+YnJvd3NlciwgREVGQVVM
VF9XSURUSCk7CiAKICAgICBld2tfdmlld191cmlfc2V0KGFwcC0+YnJvd3NlciwgdXJsKTsKKyAg
ICB3aW5kb3dzID0gZWluYV9saXN0X2FwcGVuZCh3aW5kb3dzLCBhcHApOwogCi0gICAgcmV0dXJu
IGFwcDsKKyAgICByZXR1cm4gRUlOQV9UUlVFOwogfQogCiBpbnQgbWFpbihpbnQgYXJnYywgY2hh
ciAqYXJndltdKQogewogICAgIGludCBhcmdzID0gMTsKLSAgICBjaGFyICplbmdpbmUgPSBOVUxM
OwogICAgIHVuc2lnbmVkIGNoYXIgcXVpdE9wdGlvbiA9IDA7CiAKICAgICBFY29yZV9HZXRvcHRf
VmFsdWUgdmFsdWVzW10gPSB7CkBAIC0yODIsMjIgKzMzMiwxOCBAQCBpbnQgbWFpbihpbnQgYXJn
YywgY2hhciAqYXJndltdKQogCiAgICAgaWYgKGFyZ3MgPCBhcmdjKSB7CiAgICAgICAgIGNoYXIg
KnVybCA9IHVybF9mcm9tX3VzZXJfaW5wdXQoYXJndlthcmdzXSk7Ci0gICAgICAgIGJyb3dzZXIg
PSBicm93c2VyQ3JlYXRlKHVybCwgZW5naW5lKTsKKyAgICAgICAgaWYgKCFicm93c2VyX2NyZWF0
ZSh1cmwsIGVuZ2luZSkpIHsKKyAgICAgICAgICAgIGZyZWUodXJsKTsKKyAgICAgICAgICAgIHJl
dHVybiBxdWl0KEVJTkFfRkFMU0UsICJFUlJPUjogY291bGQgbm90IGNyZWF0ZSBicm93c2VyIHdp
bmRvd1xuIik7CisgICAgICAgIH0KICAgICAgICAgZnJlZSh1cmwpOwotICAgIH0gZWxzZQotICAg
ICAgICBicm93c2VyID0gYnJvd3NlckNyZWF0ZShERUZBVUxUX1VSTCwgZW5naW5lKTsKLQotICAg
IGlmICghYnJvd3NlcikKLSAgICAgICAgcmV0dXJuIHF1aXQoRUlOQV9GQUxTRSwgIkVSUk9SOiBj
b3VsZCBub3QgY3JlYXRlIGJyb3dzZXIuXG4iKTsKKyAgICB9IGVsc2UgaWYgKCFicm93c2VyX2Ny
ZWF0ZShERUZBVUxUX1VSTCwgZW5naW5lKSkKKyAgICAgICAgcmV0dXJuIHF1aXQoRUlOQV9GQUxT
RSwgIkVSUk9SOiBjb3VsZCBub3QgY3JlYXRlIGJyb3dzZXIgd2luZG93XG4iKTsKIAogICAgIEVj
b3JlX0V2ZW50X0hhbmRsZXIgKmhhbmRsZSA9IGVjb3JlX2V2ZW50X2hhbmRsZXJfYWRkKEVDT1JF
X0VWRU5UX1NJR05BTF9FWElULCBtYWluX3NpZ25hbF9leGl0LCAwKTsKIAogICAgIGVjb3JlX21h
aW5fbG9vcF9iZWdpbigpOwogCi0gICAgdXJsX2Jhcl9kZWwoYnJvd3Nlci0+dXJsX2Jhcik7CiAg
ICAgZWNvcmVfZXZlbnRfaGFuZGxlcl9kZWwoaGFuZGxlKTsKLSAgICBlY29yZV9ldmFzX2ZyZWUo
YnJvd3Nlci0+ZWUpOwotICAgIGZyZWUoYnJvd3Nlcik7Ci0KICAgICByZXR1cm4gcXVpdChFSU5B
X1RSVUUsIE5VTEwpOwogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>166617</attachid>
            <date>2012-10-01 23:33:27 -0700</date>
            <delta_ts>2012-10-02 04:24:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-97884-20121002153239.patch</filename>
            <type>text/plain</type>
            <size>6787</size>
            <attacher name="Jinwoo Song">jinwoo7.song</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMwMTE4CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZDY3MTBkZDhkNjUxN2I1MTYxZGFjYjNkZDk5ODc1NGY1
YzU3OTc0MC4uOTJlNjgxZTk4YjI3Yzc3MmFlZWUwMTA2NDY2YjBhZTBlNmI1YTljNyAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIy
IEBACisyMDEyLTEwLTAxICBKaW53b28gU29uZyAgPGppbndvbzcuc29uZ0BzYW1zdW5nLmNvbT4K
KworICAgICAgICBbRUZMXVtXSzJdIFN1cHBvcnQgbXVsdGlwbGUgd2luZG93IGNyZWF0aW9uIGZv
ciBNaW5pQnJvd3NlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9OTc4ODQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBJbXBsZW1lbnQgdGhlIG11bHRpcGxlIHdpbmRvdyBjcmVhdGlvbiBmb3IgTWluaUJyb3dz
ZXIgYW5kIGJpbmQgdGhlICdGOScga2V5IGZvciBvcGVuaW5nIGEgbmV3IHdpbmRvdy4KKyAgICAg
ICAgQWxzbywgY2hhbmdlZCB0aGUgZnVuY3Rpb24gbmFtZSBhY2NvcmRpbmcgdG8gRUZMIGNvZGlu
ZyBzdHlsZS4KKworICAgICAgICAqIE1pbmlCcm93c2VyL2VmbC9tYWluLmM6CisgICAgICAgIChi
cm93c2VyX2Nsb3NlKToKKyAgICAgICAgKG1haW5fc2lnbmFsX2V4aXQpOgorICAgICAgICAob25f
ZWNvcmVfZXZhc19kZWxldGUpOgorICAgICAgICAob25fZWNvcmVfZXZhc19yZXNpemUpOgorICAg
ICAgICAob25fa2V5X2Rvd24pOgorICAgICAgICAoYnJvd3Nlcl9jcmVhdGUpOgorICAgICAgICAo
bWFpbik6CisKIDIwMTItMTAtMDEgIFJhcGhhZWwgS3VibyBkYSBDb3N0YSAgPHJhcGhhZWwua3Vi
by5kYS5jb3N0YUBpbnRlbC5jb20+CiAKICAgICAgICAgd2Via2l0cHkgc2hvdWxkIGFjY2VwdCBh
IGRpZmZlcmVudCBodHRwZC5jb25mIHNwZWNpZmllZCBieSB0aGUgdXNlcgpkaWZmIC0tZ2l0IGEv
VG9vbHMvTWluaUJyb3dzZXIvZWZsL21haW4uYyBiL1Rvb2xzL01pbmlCcm93c2VyL2VmbC9tYWlu
LmMKaW5kZXggYjQ0ZTUxNGExMGRjNjI0MTBmYmJjMGQ0OGY5N2RhMDcxYjNjYjU0OS4uMzUxZDg0
Nzg4ZDVhYWU4MmFlMmJlNGM3YmY4YzgyZDZmZDE2YTQ0NyAxMDA2NDQKLS0tIGEvVG9vbHMvTWlu
aUJyb3dzZXIvZWZsL21haW4uYworKysgYi9Ub29scy9NaW5pQnJvd3Nlci9lZmwvbWFpbi5jCkBA
IC0zNyw2ICszNyw4IEBAIHN0YXRpYyBjb25zdCBjaGFyIEFQUF9OQU1FW10gPSAiRUZMIE1pbmlC
cm93c2VyIjsKICAgICB9IHdoaWxlICgwKQogCiBzdGF0aWMgaW50IHZlcmJvc2UgPSAwOworc3Rh
dGljIEVpbmFfTGlzdCAqd2luZG93cyA9IE5VTEw7CitzdGF0aWMgY2hhciAqZW5naW5lID0gTlVM
TDsKIAogdHlwZWRlZiBzdHJ1Y3QgX01pbmlCcm93c2VyIHsKICAgICBFY29yZV9FdmFzICplZTsK
QEAgLTQ1LDggKzQ3LDYgQEAgdHlwZWRlZiBzdHJ1Y3QgX01pbmlCcm93c2VyIHsKICAgICBVcmxf
QmFyICp1cmxfYmFyOwogfSBNaW5pQnJvd3NlcjsKIAotTWluaUJyb3dzZXIgKmJyb3dzZXI7Ci0K
IHN0YXRpYyBjb25zdCBFY29yZV9HZXRvcHQgb3B0aW9ucyA9IHsKICAgICAiTWluaUJyb3dzZXIi
LAogICAgICIlcHJvZyBbb3B0aW9uc10gW3VybF0iLApAQCAtNzAsMjYgKzcwLDYyIEBAIHN0YXRp
YyBjb25zdCBFY29yZV9HZXRvcHQgb3B0aW9ucyA9IHsKICAgICB9CiB9OwogCitzdGF0aWMgRWlu
YV9Cb29sIGJyb3dzZXJfY3JlYXRlKGNvbnN0IGNoYXIgKnVybCwgY29uc3QgY2hhciAqZW5naW5l
KTsKKworc3RhdGljIE1pbmlCcm93c2VyICpicm93c2VyX2ZpbmQoRWNvcmVfRXZhcyAqZWUpCit7
CisgICAgRWluYV9MaXN0ICpsOworICAgIHZvaWQgKmRhdGE7CisKKyAgICBpZiAoIWVlKQorICAg
ICAgICByZXR1cm4gTlVMTDsKKyAgICBFSU5BX0xJU1RfRk9SRUFDSCh3aW5kb3dzLCBsLCBkYXRh
KQorICAgIHsKKyAgICAgICAgTWluaUJyb3dzZXIgKmFwcCA9IChNaW5pQnJvd3NlciAqKWRhdGE7
CisgICAgICAgIGlmIChhcHAtPmVlID09IGVlKQorICAgICAgICAgICAgcmV0dXJuIGFwcDsKKyAg
ICB9CisgICAgcmV0dXJuIE5VTEw7Cit9CisKK3N0YXRpYyB2b2lkIGJyb3dzZXJfY2xvc2UoTWlu
aUJyb3dzZXIgKmFwcCkKK3sKKyAgICBpZiAoIWFwcCkKKyAgICAgICAgcmV0dXJuOworICAgIHdp
bmRvd3MgPSBlaW5hX2xpc3RfcmVtb3ZlKHdpbmRvd3MsIGFwcCk7CisgICAgdXJsX2Jhcl9kZWwo
YXBwLT51cmxfYmFyKTsKKyAgICBlY29yZV9ldmFzX2ZyZWUoYXBwLT5lZSk7CisgICAgZnJlZShh
cHApOworfQorCiBzdGF0aWMgRWluYV9Cb29sIG1haW5fc2lnbmFsX2V4aXQodm9pZCAqZGF0YSwg
aW50IGV2X3R5cGUsIHZvaWQgKmV2KQogeworICAgIHdoaWxlICh3aW5kb3dzKQorICAgICAgICBi
cm93c2VyX2Nsb3NlKChNaW5pQnJvd3NlciAqKWVpbmFfbGlzdF9kYXRhX2dldCh3aW5kb3dzKSk7
CiAgICAgZWNvcmVfbWFpbl9sb29wX3F1aXQoKTsKICAgICByZXR1cm4gRUlOQV9UUlVFOwogfQog
Ci1zdGF0aWMgdm9pZCBjbG9zZVdpbmRvdyhFY29yZV9FdmFzICplZSkKK3N0YXRpYyB2b2lkIG9u
X2Vjb3JlX2V2YXNfZGVsZXRlKEVjb3JlX0V2YXMgKmVlKQogewotICAgIGVjb3JlX21haW5fbG9v
cF9xdWl0KCk7CisgICAgYnJvd3Nlcl9jbG9zZShicm93c2VyX2ZpbmQoZWUpKTsKKyAgICBpZiAo
IXdpbmRvd3MpCisgICAgICAgIGVjb3JlX21haW5fbG9vcF9xdWl0KCk7CiB9CiAKIHN0YXRpYyB2
b2lkIG9uX2Vjb3JlX2V2YXNfcmVzaXplKEVjb3JlX0V2YXMgKmVlKQogeworICAgIE1pbmlCcm93
c2VyICphcHA7CiAgICAgRXZhc19PYmplY3QgKndlYnZpZXc7CiAgICAgaW50IHcsIGg7CiAKICAg
ICBlY29yZV9ldmFzX2dlb21ldHJ5X2dldChlZSwgTlVMTCwgTlVMTCwgJncsICZoKTsKIAogICAg
IC8qIFJlc2l6ZSBVUkwgYmFyICovCi0gICAgdXJsX2Jhcl93aWR0aF9zZXQoYnJvd3Nlci0+dXJs
X2Jhciwgdyk7CisgICAgYXBwID0gYnJvd3Nlcl9maW5kKGVlKTsKKyAgICBpZiAoIWFwcCkKKyAg
ICAgICAgcmV0dXJuOworICAgIHVybF9iYXJfd2lkdGhfc2V0KGFwcC0+dXJsX2Jhciwgdyk7CiAK
ICAgICB3ZWJ2aWV3ID0gZXZhc19vYmplY3RfbmFtZV9maW5kKGVjb3JlX2V2YXNfZ2V0KGVlKSwg
ImJyb3dzZXIiKTsKICAgICBldmFzX29iamVjdF9tb3ZlKHdlYnZpZXcsIDAsIFVSTF9CQVJfSEVJ
R0hUKTsKQEAgLTExOSwxMSArMTU1LDE0IEBAIG9uX2tleV9kb3duKHZvaWQgKmRhdGEsIEV2YXMg
KmUsIEV2YXNfT2JqZWN0ICpvYmosIHZvaWQgKmV2ZW50X2luZm8pCiAgICAgICAgIGluZm8oIlNl
dCBlbmNvZGluZyAoRjMpIHByZXNzZWQuIE5ldyBlbmNvZGluZyB0byAlcyIsIGVuY29kaW5nc1tj
dXJyZW50RW5jb2RpbmddKTsKICAgICAgICAgZXdrX3ZpZXdfc2V0dGluZ19lbmNvZGluZ19jdXN0
b21fc2V0KG9iaiwgZW5jb2RpbmdzW2N1cnJlbnRFbmNvZGluZ10pOwogICAgIH0gZWxzZSBpZiAo
IXN0cmNtcChldi0+a2V5LCAiRjUiKSkgewotICAgICAgICAgICAgaW5mbygiUmVsb2FkIChGNSkg
d2FzIHByZXNzZWQsIHJlbG9hZGluZy5cbiIpOwotICAgICAgICAgICAgZXdrX3ZpZXdfcmVsb2Fk
KG9iaik7CisgICAgICAgIGluZm8oIlJlbG9hZCAoRjUpIHdhcyBwcmVzc2VkLCByZWxvYWRpbmcu
XG4iKTsKKyAgICAgICAgZXdrX3ZpZXdfcmVsb2FkKG9iaik7CiAgICAgfSBlbHNlIGlmICghc3Ry
Y21wKGV2LT5rZXksICJGNiIpKSB7Ci0gICAgICAgICAgICBpbmZvKCJTdG9wIChGNikgd2FzIHBy
ZXNzZWQsIHN0b3AgbG9hZGluZy5cbiIpOwotICAgICAgICAgICAgZXdrX3ZpZXdfc3RvcChvYmop
OworICAgICAgICBpbmZvKCJTdG9wIChGNikgd2FzIHByZXNzZWQsIHN0b3AgbG9hZGluZy5cbiIp
OworICAgICAgICBld2tfdmlld19zdG9wKG9iaik7CisgICAgfSBlbHNlIGlmICghc3RyY21wKGV2
LT5rZXksICJGOSIpKSB7CisgICAgICAgIGluZm8oIkNyZWF0ZSBuZXcgd2luZG93IChGOSkgd2Fz
IHByZXNzZWQuXG4iKTsKKyAgICAgICAgYnJvd3Nlcl9jcmVhdGUoREVGQVVMVF9VUkwsIGVuZ2lu
ZSk7CiAgICAgfQogfQogCkBAIC0yMTEsMjEgKzI1MCwzMyBAQCBxdWl0KEVpbmFfQm9vbCBzdWNj
ZXNzLCBjb25zdCBjaGFyICptc2cpCiAgICAgcmV0dXJuIEVYSVRfU1VDQ0VTUzsKIH0KIAotc3Rh
dGljIE1pbmlCcm93c2VyICpicm93c2VyQ3JlYXRlKGNvbnN0IGNoYXIgKnVybCwgY29uc3QgY2hh
ciAqZW5naW5lKQorc3RhdGljIEVpbmFfQm9vbCBicm93c2VyX2NyZWF0ZShjb25zdCBjaGFyICp1
cmwsIGNvbnN0IGNoYXIgKmVuZ2luZSkKIHsKICAgICBNaW5pQnJvd3NlciAqYXBwID0gbWFsbG9j
KHNpemVvZihNaW5pQnJvd3NlcikpOworICAgIGlmICghYXBwKSB7CisgICAgICAgIGluZm8oIkVS
Uk9SOiBjb3VsZCBub3QgY3JlYXRlIE1pbmlCcm93c2VyIHdpbmRvd1xuIik7CisgICAgICAgIHJl
dHVybiBFSU5BX0ZBTFNFOworICAgIH0KIAogICAgIGFwcC0+ZWUgPSBlY29yZV9ldmFzX25ldyhl
bmdpbmUsIDAsIDAsIERFRkFVTFRfV0lEVEgsIERFRkFVTFRfSEVJR0hULCAwKTsKLSAgICBpZiAo
IWFwcC0+ZWUpCi0gICAgICAgIHJldHVybiAwOworICAgIGlmICghYXBwLT5lZSkgeworICAgICAg
ICBpbmZvKCJFUlJPUjogY291bGQgbm90IGNvbnN0cnVjdCBlY29yZS1ldmFzXG4iKTsKKyAgICAg
ICAgZnJlZShhcHApOworICAgICAgICByZXR1cm4gRUlOQV9GQUxTRTsKKyAgICB9CiAKICAgICBl
Y29yZV9ldmFzX3RpdGxlX3NldChhcHAtPmVlLCBBUFBfTkFNRSk7CiAgICAgZWNvcmVfZXZhc19j
YWxsYmFja19yZXNpemVfc2V0KGFwcC0+ZWUsIG9uX2Vjb3JlX2V2YXNfcmVzaXplKTsKICAgICBl
Y29yZV9ldmFzX2JvcmRlcmxlc3Nfc2V0KGFwcC0+ZWUsIDApOwogICAgIGVjb3JlX2V2YXNfc2hv
dyhhcHAtPmVlKTsKLSAgICBlY29yZV9ldmFzX2NhbGxiYWNrX2RlbGV0ZV9yZXF1ZXN0X3NldChh
cHAtPmVlLCBjbG9zZVdpbmRvdyk7CisgICAgZWNvcmVfZXZhc19jYWxsYmFja19kZWxldGVfcmVx
dWVzdF9zZXQoYXBwLT5lZSwgb25fZWNvcmVfZXZhc19kZWxldGUpOwogCiAgICAgYXBwLT5ldmFz
ID0gZWNvcmVfZXZhc19nZXQoYXBwLT5lZSk7CisgICAgaWYgKCFhcHAtPmV2YXMpIHsKKyAgICAg
ICAgaW5mbygiRVJST1I6IGNvdWxkIG5vdCBnZXQgZXZhcyBmcm9tIGV2YXMtZWNvcmVcbiIpOwor
ICAgICAgICBmcmVlKGFwcCk7CisgICAgICAgIHJldHVybiBFSU5BX0ZBTFNFOworICAgIH0KIAog
ICAgIC8qIENyZWF0ZSB3ZWJ2aWV3ICovCiAgICAgYXBwLT5icm93c2VyID0gZXdrX3ZpZXdfYWRk
KGFwcC0+ZXZhcyk7CkBAIC0yNDksMTQgKzMwMCwxNCBAQCBzdGF0aWMgTWluaUJyb3dzZXIgKmJy
b3dzZXJDcmVhdGUoY29uc3QgY2hhciAqdXJsLCBjb25zdCBjaGFyICplbmdpbmUpCiAgICAgYXBw
LT51cmxfYmFyID0gdXJsX2Jhcl9hZGQoYXBwLT5icm93c2VyLCBERUZBVUxUX1dJRFRIKTsKIAog
ICAgIGV3a192aWV3X3VyaV9zZXQoYXBwLT5icm93c2VyLCB1cmwpOworICAgIHdpbmRvd3MgPSBl
aW5hX2xpc3RfYXBwZW5kKHdpbmRvd3MsIGFwcCk7CiAKLSAgICByZXR1cm4gYXBwOworICAgIHJl
dHVybiBFSU5BX1RSVUU7CiB9CiAKIGludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCiB7
CiAgICAgaW50IGFyZ3MgPSAxOwotICAgIGNoYXIgKmVuZ2luZSA9IE5VTEw7CiAgICAgdW5zaWdu
ZWQgY2hhciBxdWl0T3B0aW9uID0gMDsKIAogICAgIEVjb3JlX0dldG9wdF9WYWx1ZSB2YWx1ZXNb
XSA9IHsKQEAgLTI4MiwyMiArMzMzLDE4IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2
W10pCiAKICAgICBpZiAoYXJncyA8IGFyZ2MpIHsKICAgICAgICAgY2hhciAqdXJsID0gdXJsX2Zy
b21fdXNlcl9pbnB1dChhcmd2W2FyZ3NdKTsKLSAgICAgICAgYnJvd3NlciA9IGJyb3dzZXJDcmVh
dGUodXJsLCBlbmdpbmUpOworICAgICAgICBpZiAoIWJyb3dzZXJfY3JlYXRlKHVybCwgZW5naW5l
KSkgeworICAgICAgICAgICAgZnJlZSh1cmwpOworICAgICAgICAgICAgcmV0dXJuIHF1aXQoRUlO
QV9GQUxTRSwgIkVSUk9SOiBjb3VsZCBub3QgY3JlYXRlIGJyb3dzZXIgd2luZG93XG4iKTsKKyAg
ICAgICAgfQogICAgICAgICBmcmVlKHVybCk7Ci0gICAgfSBlbHNlCi0gICAgICAgIGJyb3dzZXIg
PSBicm93c2VyQ3JlYXRlKERFRkFVTFRfVVJMLCBlbmdpbmUpOwotCi0gICAgaWYgKCFicm93c2Vy
KQotICAgICAgICByZXR1cm4gcXVpdChFSU5BX0ZBTFNFLCAiRVJST1I6IGNvdWxkIG5vdCBjcmVh
dGUgYnJvd3Nlci5cbiIpOworICAgIH0gZWxzZSBpZiAoIWJyb3dzZXJfY3JlYXRlKERFRkFVTFRf
VVJMLCBlbmdpbmUpKQorICAgICAgICByZXR1cm4gcXVpdChFSU5BX0ZBTFNFLCAiRVJST1I6IGNv
dWxkIG5vdCBjcmVhdGUgYnJvd3NlciB3aW5kb3dcbiIpOwogCiAgICAgRWNvcmVfRXZlbnRfSGFu
ZGxlciAqaGFuZGxlID0gZWNvcmVfZXZlbnRfaGFuZGxlcl9hZGQoRUNPUkVfRVZFTlRfU0lHTkFM
X0VYSVQsIG1haW5fc2lnbmFsX2V4aXQsIDApOwogCiAgICAgZWNvcmVfbWFpbl9sb29wX2JlZ2lu
KCk7CiAKLSAgICB1cmxfYmFyX2RlbChicm93c2VyLT51cmxfYmFyKTsKICAgICBlY29yZV9ldmVu
dF9oYW5kbGVyX2RlbChoYW5kbGUpOwotICAgIGVjb3JlX2V2YXNfZnJlZShicm93c2VyLT5lZSk7
Ci0gICAgZnJlZShicm93c2VyKTsKLQogICAgIHJldHVybiBxdWl0KEVJTkFfVFJVRSwgTlVMTCk7
CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>166659</attachid>
            <date>2012-10-02 04:24:38 -0700</date>
            <delta_ts>2012-10-04 06:20:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-97884-20121002202344.patch</filename>
            <type>text/plain</type>
            <size>6749</size>
            <attacher name="Jinwoo Song">jinwoo7.song</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMwMTQ4CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMWJiMjA5Zjk4Y2VkNjUyYjdhNjRjZjIzMWI3YjY3M2Y1
NmYwYjllMC4uODMzNGEyMjllMWMwMmRlNDg5MGFjNmE5ZTE0NzU5MGU3YjQ4ZDdmZSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIy
IEBACisyMDEyLTEwLTAyICBKaW53b28gU29uZyAgPGppbndvbzcuc29uZ0BzYW1zdW5nLmNvbT4K
KworICAgICAgICBbRUZMXVtXSzJdIFN1cHBvcnQgbXVsdGlwbGUgd2luZG93IGNyZWF0aW9uIGZv
ciBNaW5pQnJvd3NlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9OTc4ODQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBJbXBsZW1lbnQgdGhlIG11bHRpcGxlIHdpbmRvdyBjcmVhdGlvbiBmb3IgTWluaUJyb3dz
ZXIgYW5kIGJpbmQgdGhlICdGOScga2V5IGZvciBvcGVuaW5nIGEgbmV3IHdpbmRvdy4KKyAgICAg
ICAgQWxzbywgY2hhbmdlZCB0aGUgZnVuY3Rpb24gbmFtZSBhY2NvcmRpbmcgdG8gRUZMIGNvZGlu
ZyBzdHlsZS4KKworICAgICAgICAqIE1pbmlCcm93c2VyL2VmbC9tYWluLmM6CisgICAgICAgIChi
cm93c2VyX2Nsb3NlKToKKyAgICAgICAgKG1haW5fc2lnbmFsX2V4aXQpOgorICAgICAgICAob25f
ZWNvcmVfZXZhc19kZWxldGUpOgorICAgICAgICAob25fZWNvcmVfZXZhc19yZXNpemUpOgorICAg
ICAgICAob25fa2V5X2Rvd24pOgorICAgICAgICAoYnJvd3Nlcl9jcmVhdGUpOgorICAgICAgICAo
bWFpbik6CisKIDIwMTItMTAtMDIgIFBoaWxpcCBSb2dlcnMgIDxwZHJAZ29vZ2xlLmNvbT4KIAog
ICAgICAgICBGaXggUGVyZlRlc3Qgc3RhbmRhcmQgZGV2aWF0aW9uIGNhbGN1bGF0aW9uLgpkaWZm
IC0tZ2l0IGEvVG9vbHMvTWluaUJyb3dzZXIvZWZsL21haW4uYyBiL1Rvb2xzL01pbmlCcm93c2Vy
L2VmbC9tYWluLmMKaW5kZXggYjQ0ZTUxNGExMGRjNjI0MTBmYmJjMGQ0OGY5N2RhMDcxYjNjYjU0
OS4uMGJkNjkyMDg5NTBkOTE2MzE3ODViOTlkYzc5MDRhM2Y4NzNlMTI2NCAxMDA2NDQKLS0tIGEv
VG9vbHMvTWluaUJyb3dzZXIvZWZsL21haW4uYworKysgYi9Ub29scy9NaW5pQnJvd3Nlci9lZmwv
bWFpbi5jCkBAIC0zNyw2ICszNyw4IEBAIHN0YXRpYyBjb25zdCBjaGFyIEFQUF9OQU1FW10gPSAi
RUZMIE1pbmlCcm93c2VyIjsKICAgICB9IHdoaWxlICgwKQogCiBzdGF0aWMgaW50IHZlcmJvc2Ug
PSAwOworc3RhdGljIEVpbmFfTGlzdCAqd2luZG93cyA9IE5VTEw7CitzdGF0aWMgY2hhciAqZW5n
aW5lID0gTlVMTDsKIAogdHlwZWRlZiBzdHJ1Y3QgX01pbmlCcm93c2VyIHsKICAgICBFY29yZV9F
dmFzICplZTsKQEAgLTQ1LDggKzQ3LDYgQEAgdHlwZWRlZiBzdHJ1Y3QgX01pbmlCcm93c2VyIHsK
ICAgICBVcmxfQmFyICp1cmxfYmFyOwogfSBNaW5pQnJvd3NlcjsKIAotTWluaUJyb3dzZXIgKmJy
b3dzZXI7Ci0KIHN0YXRpYyBjb25zdCBFY29yZV9HZXRvcHQgb3B0aW9ucyA9IHsKICAgICAiTWlu
aUJyb3dzZXIiLAogICAgICIlcHJvZyBbb3B0aW9uc10gW3VybF0iLApAQCAtNzAsMjYgKzcwLDY3
IEBAIHN0YXRpYyBjb25zdCBFY29yZV9HZXRvcHQgb3B0aW9ucyA9IHsKICAgICB9CiB9OwogCitz
dGF0aWMgRWluYV9Cb29sIGJyb3dzZXJfY3JlYXRlKGNvbnN0IGNoYXIgKnVybCwgY29uc3QgY2hh
ciAqZW5naW5lKTsKKworc3RhdGljIE1pbmlCcm93c2VyICpicm93c2VyX2ZpbmQoRWNvcmVfRXZh
cyAqZWUpCit7CisgICAgRWluYV9MaXN0ICpsOworICAgIHZvaWQgKmRhdGE7CisKKyAgICBpZiAo
IWVlKQorICAgICAgICByZXR1cm4gTlVMTDsKKworICAgIEVJTkFfTElTVF9GT1JFQUNIKHdpbmRv
d3MsIGwsIGRhdGEpCisgICAgeworICAgICAgICBNaW5pQnJvd3NlciAqYXBwID0gKE1pbmlCcm93
c2VyICopZGF0YTsKKyAgICAgICAgaWYgKGFwcC0+ZWUgPT0gZWUpCisgICAgICAgICAgICByZXR1
cm4gYXBwOworICAgIH0KKyAgICByZXR1cm4gTlVMTDsKK30KKworc3RhdGljIHZvaWQgYnJvd3Nl
cl9jbG9zZShNaW5pQnJvd3NlciAqYXBwKQoreworICAgIGlmICghYXBwKQorICAgICAgICByZXR1
cm47CisKKyAgICB3aW5kb3dzID0gZWluYV9saXN0X3JlbW92ZSh3aW5kb3dzLCBhcHApOworICAg
IHVybF9iYXJfZGVsKGFwcC0+dXJsX2Jhcik7CisgICAgZWNvcmVfZXZhc19mcmVlKGFwcC0+ZWUp
OworICAgIGZyZWUoYXBwKTsKK30KKwogc3RhdGljIEVpbmFfQm9vbCBtYWluX3NpZ25hbF9leGl0
KHZvaWQgKmRhdGEsIGludCBldl90eXBlLCB2b2lkICpldikKIHsKKyAgICB3aGlsZSAod2luZG93
cykKKyAgICAgICAgYnJvd3Nlcl9jbG9zZSgoTWluaUJyb3dzZXIgKillaW5hX2xpc3RfZGF0YV9n
ZXQod2luZG93cykpOworCiAgICAgZWNvcmVfbWFpbl9sb29wX3F1aXQoKTsKICAgICByZXR1cm4g
RUlOQV9UUlVFOwogfQogCi1zdGF0aWMgdm9pZCBjbG9zZVdpbmRvdyhFY29yZV9FdmFzICplZSkK
K3N0YXRpYyB2b2lkIG9uX2Vjb3JlX2V2YXNfZGVsZXRlKEVjb3JlX0V2YXMgKmVlKQogewotICAg
IGVjb3JlX21haW5fbG9vcF9xdWl0KCk7CisgICAgYnJvd3Nlcl9jbG9zZShicm93c2VyX2ZpbmQo
ZWUpKTsKKworICAgIGlmICghd2luZG93cykKKyAgICAgICAgZWNvcmVfbWFpbl9sb29wX3F1aXQo
KTsKIH0KIAogc3RhdGljIHZvaWQgb25fZWNvcmVfZXZhc19yZXNpemUoRWNvcmVfRXZhcyAqZWUp
CiB7CisgICAgTWluaUJyb3dzZXIgKmFwcDsKICAgICBFdmFzX09iamVjdCAqd2VidmlldzsKICAg
ICBpbnQgdywgaDsKIAogICAgIGVjb3JlX2V2YXNfZ2VvbWV0cnlfZ2V0KGVlLCBOVUxMLCBOVUxM
LCAmdywgJmgpOwogCiAgICAgLyogUmVzaXplIFVSTCBiYXIgKi8KLSAgICB1cmxfYmFyX3dpZHRo
X3NldChicm93c2VyLT51cmxfYmFyLCB3KTsKKyAgICBhcHAgPSBicm93c2VyX2ZpbmQoZWUpOwor
ICAgIGlmICghYXBwKQorICAgICAgICByZXR1cm47CisKKyAgICB1cmxfYmFyX3dpZHRoX3NldChh
cHAtPnVybF9iYXIsIHcpOwogCiAgICAgd2VidmlldyA9IGV2YXNfb2JqZWN0X25hbWVfZmluZChl
Y29yZV9ldmFzX2dldChlZSksICJicm93c2VyIik7CiAgICAgZXZhc19vYmplY3RfbW92ZSh3ZWJ2
aWV3LCAwLCBVUkxfQkFSX0hFSUdIVCk7CkBAIC0xMTksMTEgKzE2MCwxNCBAQCBvbl9rZXlfZG93
bih2b2lkICpkYXRhLCBFdmFzICplLCBFdmFzX09iamVjdCAqb2JqLCB2b2lkICpldmVudF9pbmZv
KQogICAgICAgICBpbmZvKCJTZXQgZW5jb2RpbmcgKEYzKSBwcmVzc2VkLiBOZXcgZW5jb2Rpbmcg
dG8gJXMiLCBlbmNvZGluZ3NbY3VycmVudEVuY29kaW5nXSk7CiAgICAgICAgIGV3a192aWV3X3Nl
dHRpbmdfZW5jb2RpbmdfY3VzdG9tX3NldChvYmosIGVuY29kaW5nc1tjdXJyZW50RW5jb2Rpbmdd
KTsKICAgICB9IGVsc2UgaWYgKCFzdHJjbXAoZXYtPmtleSwgIkY1IikpIHsKLSAgICAgICAgICAg
IGluZm8oIlJlbG9hZCAoRjUpIHdhcyBwcmVzc2VkLCByZWxvYWRpbmcuXG4iKTsKLSAgICAgICAg
ICAgIGV3a192aWV3X3JlbG9hZChvYmopOworICAgICAgICBpbmZvKCJSZWxvYWQgKEY1KSB3YXMg
cHJlc3NlZCwgcmVsb2FkaW5nLlxuIik7CisgICAgICAgIGV3a192aWV3X3JlbG9hZChvYmopOwog
ICAgIH0gZWxzZSBpZiAoIXN0cmNtcChldi0+a2V5LCAiRjYiKSkgewotICAgICAgICAgICAgaW5m
bygiU3RvcCAoRjYpIHdhcyBwcmVzc2VkLCBzdG9wIGxvYWRpbmcuXG4iKTsKLSAgICAgICAgICAg
IGV3a192aWV3X3N0b3Aob2JqKTsKKyAgICAgICAgaW5mbygiU3RvcCAoRjYpIHdhcyBwcmVzc2Vk
LCBzdG9wIGxvYWRpbmcuXG4iKTsKKyAgICAgICAgZXdrX3ZpZXdfc3RvcChvYmopOworICAgIH0g
ZWxzZSBpZiAoIXN0cmNtcChldi0+a2V5LCAiRjkiKSkgeworICAgICAgICBpbmZvKCJDcmVhdGUg
bmV3IHdpbmRvdyAoRjkpIHdhcyBwcmVzc2VkLlxuIik7CisgICAgICAgIGJyb3dzZXJfY3JlYXRl
KERFRkFVTFRfVVJMLCBlbmdpbmUpOwogICAgIH0KIH0KIApAQCAtMjExLDIxICsyNTUsMzMgQEAg
cXVpdChFaW5hX0Jvb2wgc3VjY2VzcywgY29uc3QgY2hhciAqbXNnKQogICAgIHJldHVybiBFWElU
X1NVQ0NFU1M7CiB9CiAKLXN0YXRpYyBNaW5pQnJvd3NlciAqYnJvd3NlckNyZWF0ZShjb25zdCBj
aGFyICp1cmwsIGNvbnN0IGNoYXIgKmVuZ2luZSkKK3N0YXRpYyBFaW5hX0Jvb2wgYnJvd3Nlcl9j
cmVhdGUoY29uc3QgY2hhciAqdXJsLCBjb25zdCBjaGFyICplbmdpbmUpCiB7CiAgICAgTWluaUJy
b3dzZXIgKmFwcCA9IG1hbGxvYyhzaXplb2YoTWluaUJyb3dzZXIpKTsKKyAgICBpZiAoIWFwcCkg
eworICAgICAgICBpbmZvKCJFUlJPUjogY291bGQgbm90IGNyZWF0ZSBNaW5pQnJvd3NlciB3aW5k
b3dcbiIpOworICAgICAgICByZXR1cm4gRUlOQV9GQUxTRTsKKyAgICB9CiAKICAgICBhcHAtPmVl
ID0gZWNvcmVfZXZhc19uZXcoZW5naW5lLCAwLCAwLCBERUZBVUxUX1dJRFRILCBERUZBVUxUX0hF
SUdIVCwgMCk7Ci0gICAgaWYgKCFhcHAtPmVlKQotICAgICAgICByZXR1cm4gMDsKKyAgICBpZiAo
IWFwcC0+ZWUpIHsKKyAgICAgICAgaW5mbygiRVJST1I6IGNvdWxkIG5vdCBjb25zdHJ1Y3QgZWNv
cmUtZXZhc1xuIik7CisgICAgICAgIGZyZWUoYXBwKTsKKyAgICAgICAgcmV0dXJuIEVJTkFfRkFM
U0U7CisgICAgfQogCiAgICAgZWNvcmVfZXZhc190aXRsZV9zZXQoYXBwLT5lZSwgQVBQX05BTUUp
OwogICAgIGVjb3JlX2V2YXNfY2FsbGJhY2tfcmVzaXplX3NldChhcHAtPmVlLCBvbl9lY29yZV9l
dmFzX3Jlc2l6ZSk7CiAgICAgZWNvcmVfZXZhc19ib3JkZXJsZXNzX3NldChhcHAtPmVlLCAwKTsK
ICAgICBlY29yZV9ldmFzX3Nob3coYXBwLT5lZSk7Ci0gICAgZWNvcmVfZXZhc19jYWxsYmFja19k
ZWxldGVfcmVxdWVzdF9zZXQoYXBwLT5lZSwgY2xvc2VXaW5kb3cpOworICAgIGVjb3JlX2V2YXNf
Y2FsbGJhY2tfZGVsZXRlX3JlcXVlc3Rfc2V0KGFwcC0+ZWUsIG9uX2Vjb3JlX2V2YXNfZGVsZXRl
KTsKIAogICAgIGFwcC0+ZXZhcyA9IGVjb3JlX2V2YXNfZ2V0KGFwcC0+ZWUpOworICAgIGlmICgh
YXBwLT5ldmFzKSB7CisgICAgICAgIGluZm8oIkVSUk9SOiBjb3VsZCBub3QgZ2V0IGV2YXMgZnJv
bSBldmFzLWVjb3JlXG4iKTsKKyAgICAgICAgZnJlZShhcHApOworICAgICAgICByZXR1cm4gRUlO
QV9GQUxTRTsKKyAgICB9CiAKICAgICAvKiBDcmVhdGUgd2VidmlldyAqLwogICAgIGFwcC0+YnJv
d3NlciA9IGV3a192aWV3X2FkZChhcHAtPmV2YXMpOwpAQCAtMjQ5LDE0ICszMDUsMTQgQEAgc3Rh
dGljIE1pbmlCcm93c2VyICpicm93c2VyQ3JlYXRlKGNvbnN0IGNoYXIgKnVybCwgY29uc3QgY2hh
ciAqZW5naW5lKQogICAgIGFwcC0+dXJsX2JhciA9IHVybF9iYXJfYWRkKGFwcC0+YnJvd3Nlciwg
REVGQVVMVF9XSURUSCk7CiAKICAgICBld2tfdmlld191cmlfc2V0KGFwcC0+YnJvd3NlciwgdXJs
KTsKKyAgICB3aW5kb3dzID0gZWluYV9saXN0X2FwcGVuZCh3aW5kb3dzLCBhcHApOwogCi0gICAg
cmV0dXJuIGFwcDsKKyAgICByZXR1cm4gRUlOQV9UUlVFOwogfQogCiBpbnQgbWFpbihpbnQgYXJn
YywgY2hhciAqYXJndltdKQogewogICAgIGludCBhcmdzID0gMTsKLSAgICBjaGFyICplbmdpbmUg
PSBOVUxMOwogICAgIHVuc2lnbmVkIGNoYXIgcXVpdE9wdGlvbiA9IDA7CiAKICAgICBFY29yZV9H
ZXRvcHRfVmFsdWUgdmFsdWVzW10gPSB7CkBAIC0yODIsMjIgKzMzOCwxOCBAQCBpbnQgbWFpbihp
bnQgYXJnYywgY2hhciAqYXJndltdKQogCiAgICAgaWYgKGFyZ3MgPCBhcmdjKSB7CiAgICAgICAg
IGNoYXIgKnVybCA9IHVybF9mcm9tX3VzZXJfaW5wdXQoYXJndlthcmdzXSk7Ci0gICAgICAgIGJy
b3dzZXIgPSBicm93c2VyQ3JlYXRlKHVybCwgZW5naW5lKTsKKyAgICAgICAgaWYgKCFicm93c2Vy
X2NyZWF0ZSh1cmwsIGVuZ2luZSkpIHsKKyAgICAgICAgICAgIGZyZWUodXJsKTsKKyAgICAgICAg
ICAgIHJldHVybiBxdWl0KEVJTkFfRkFMU0UsICJFUlJPUjogY291bGQgbm90IGNyZWF0ZSBicm93
c2VyIHdpbmRvd1xuIik7CisgICAgICAgIH0KICAgICAgICAgZnJlZSh1cmwpOwotICAgIH0gZWxz
ZQotICAgICAgICBicm93c2VyID0gYnJvd3NlckNyZWF0ZShERUZBVUxUX1VSTCwgZW5naW5lKTsK
LQotICAgIGlmICghYnJvd3NlcikKLSAgICAgICAgcmV0dXJuIHF1aXQoRUlOQV9GQUxTRSwgIkVS
Uk9SOiBjb3VsZCBub3QgY3JlYXRlIGJyb3dzZXIuXG4iKTsKKyAgICB9IGVsc2UgaWYgKCFicm93
c2VyX2NyZWF0ZShERUZBVUxUX1VSTCwgZW5naW5lKSkKKyAgICAgICAgcmV0dXJuIHF1aXQoRUlO
QV9GQUxTRSwgIkVSUk9SOiBjb3VsZCBub3QgY3JlYXRlIGJyb3dzZXIgd2luZG93XG4iKTsKIAog
ICAgIEVjb3JlX0V2ZW50X0hhbmRsZXIgKmhhbmRsZSA9IGVjb3JlX2V2ZW50X2hhbmRsZXJfYWRk
KEVDT1JFX0VWRU5UX1NJR05BTF9FWElULCBtYWluX3NpZ25hbF9leGl0LCAwKTsKIAogICAgIGVj
b3JlX21haW5fbG9vcF9iZWdpbigpOwogCi0gICAgdXJsX2Jhcl9kZWwoYnJvd3Nlci0+dXJsX2Jh
cik7CiAgICAgZWNvcmVfZXZlbnRfaGFuZGxlcl9kZWwoaGFuZGxlKTsKLSAgICBlY29yZV9ldmFz
X2ZyZWUoYnJvd3Nlci0+ZWUpOwotICAgIGZyZWUoYnJvd3Nlcik7Ci0KICAgICByZXR1cm4gcXVp
dChFSU5BX1RSVUUsIE5VTEwpOwogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>167093</attachid>
            <date>2012-10-04 06:20:58 -0700</date>
            <delta_ts>2012-10-04 11:01:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-97884-20121004222008.patch</filename>
            <type>text/plain</type>
            <size>7605</size>
            <attacher name="Jinwoo Song">jinwoo7.song</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMwMTE4CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZDY3MTBkZDhkNjUxN2I1MTYxZGFjYjNkZDk5ODc1NGY1
YzU3OTc0MC4uNGJmY2RiZjg0MTJhMDM0YzIxMThlNjU5ZThkN2YwOTljNzRhYThkYyAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIy
IEBACisyMDEyLTEwLTA0ICBKaW53b28gU29uZyAgPGppbndvbzcuc29uZ0BzYW1zdW5nLmNvbT4K
KworICAgICAgICBbRUZMXVtXSzJdIFN1cHBvcnQgbXVsdGlwbGUgd2luZG93IGNyZWF0aW9uIGZv
ciBNaW5pQnJvd3NlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9OTc4ODQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBJbXBsZW1lbnQgdGhlIG11bHRpcGxlIHdpbmRvdyBjcmVhdGlvbiBmb3IgTWluaUJyb3dz
ZXIgYW5kIGJpbmQgdGhlICdGOScga2V5IGZvciBvcGVuaW5nIGEgbmV3IHdpbmRvdy4KKyAgICAg
ICAgQWxzbywgY2hhbmdlZCB0aGUgZnVuY3Rpb24gbmFtZSBhY2NvcmRpbmcgdG8gRUZMIGNvZGlu
ZyBzdHlsZS4KKworICAgICAgICAqIE1pbmlCcm93c2VyL2VmbC9tYWluLmM6CisgICAgICAgICh3
aW5kb3dfY2xvc2UpOgorICAgICAgICAobWFpbl9zaWduYWxfZXhpdCk6CisgICAgICAgIChvbl9l
Y29yZV9ldmFzX2RlbGV0ZSk6CisgICAgICAgIChvbl9lY29yZV9ldmFzX3Jlc2l6ZSk6CisgICAg
ICAgIChvbl9rZXlfZG93bik6CisgICAgICAgICh3aW5kb3dfY3JlYXRlKToKKyAgICAgICAgKG1h
aW4pOgorCiAyMDEyLTEwLTAxICBSYXBoYWVsIEt1Ym8gZGEgQ29zdGEgIDxyYXBoYWVsLmt1Ym8u
ZGEuY29zdGFAaW50ZWwuY29tPgogCiAgICAgICAgIHdlYmtpdHB5IHNob3VsZCBhY2NlcHQgYSBk
aWZmZXJlbnQgaHR0cGQuY29uZiBzcGVjaWZpZWQgYnkgdGhlIHVzZXIKZGlmZiAtLWdpdCBhL1Rv
b2xzL01pbmlCcm93c2VyL2VmbC9tYWluLmMgYi9Ub29scy9NaW5pQnJvd3Nlci9lZmwvbWFpbi5j
CmluZGV4IGI0NGU1MTRhMTBkYzYyNDEwZmJiYzBkNDhmOTdkYTA3MWIzY2I1NDkuLmEzYjYwOGUx
NjM1NTcyZjk0YjIyNDE2YjU5ZDk3MWJhMDY5ZTFmNDMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL01pbmlC
cm93c2VyL2VmbC9tYWluLmMKKysrIGIvVG9vbHMvTWluaUJyb3dzZXIvZWZsL21haW4uYwpAQCAt
MzcsNiArMzcsOCBAQCBzdGF0aWMgY29uc3QgY2hhciBBUFBfTkFNRVtdID0gIkVGTCBNaW5pQnJv
d3NlciI7CiAgICAgfSB3aGlsZSAoMCkKIAogc3RhdGljIGludCB2ZXJib3NlID0gMDsKK3N0YXRp
YyBFaW5hX0xpc3QgKndpbmRvd3MgPSBOVUxMOworc3RhdGljIGNoYXIgKmV2YXNfZW5naW5lID0g
TlVMTDsKIAogdHlwZWRlZiBzdHJ1Y3QgX01pbmlCcm93c2VyIHsKICAgICBFY29yZV9FdmFzICpl
ZTsKQEAgLTQ1LDggKzQ3LDYgQEAgdHlwZWRlZiBzdHJ1Y3QgX01pbmlCcm93c2VyIHsKICAgICBV
cmxfQmFyICp1cmxfYmFyOwogfSBNaW5pQnJvd3NlcjsKIAotTWluaUJyb3dzZXIgKmJyb3dzZXI7
Ci0KIHN0YXRpYyBjb25zdCBFY29yZV9HZXRvcHQgb3B0aW9ucyA9IHsKICAgICAiTWluaUJyb3dz
ZXIiLAogICAgICIlcHJvZyBbb3B0aW9uc10gW3VybF0iLApAQCAtNTYsNyArNTYsNyBAQCBzdGF0
aWMgY29uc3QgRWNvcmVfR2V0b3B0IG9wdGlvbnMgPSB7CiAgICAgIlRlc3QgV2ViIEJyb3dzZXIg
dXNpbmcgdGhlIEVubGlnaHRlbm1lbnQgRm91bmRhdGlvbiBMaWJyYXJpZXMgb2YgV2ViS2l0MiIs
CiAgICAgRUlOQV9UUlVFLCB7CiAgICAgICAgIEVDT1JFX0dFVE9QVF9TVE9SRV9TVFIKLSAgICAg
ICAgICAgICgnZScsICJlbmdpbmUiLCAiZWNvcmUtZXZhcyBlbmdpbmUgdG8gdXNlLiIpLAorICAg
ICAgICAgICAgKCdlJywgImVjb3JlLWV2YXMgZW5naW5lIiwgImVjb3JlLWV2YXMgZW5naW5lIHRv
IHVzZS4iKSwKICAgICAgICAgRUNPUkVfR0VUT1BUX0NBTExCQUNLX05PQVJHUwogICAgICAgICAg
ICAgKCdFJywgImxpc3QtZW5naW5lcyIsICJsaXN0IGVjb3JlLWV2YXMgZW5naW5lcy4iLAogICAg
ICAgICAgICAgIGVjb3JlX2dldG9wdF9jYWxsYmFja19lY29yZV9ldmFzX2xpc3RfZW5naW5lcywg
TlVMTCksCkBAIC03MCwyNiArNzAsNjcgQEAgc3RhdGljIGNvbnN0IEVjb3JlX0dldG9wdCBvcHRp
b25zID0gewogICAgIH0KIH07CiAKK3N0YXRpYyBFaW5hX0Jvb2wgd2luZG93X2NyZWF0ZShjb25z
dCBjaGFyICp1cmwsIGNvbnN0IGNoYXIgKmV2YXNfZW5naW5lKTsKKworc3RhdGljIE1pbmlCcm93
c2VyICpicm93c2VyX2ZpbmQoRWNvcmVfRXZhcyAqZWUpCit7CisgICAgRWluYV9MaXN0ICpsOwor
ICAgIHZvaWQgKmRhdGE7CisKKyAgICBpZiAoIWVlKQorICAgICAgICByZXR1cm4gTlVMTDsKKwor
ICAgIEVJTkFfTElTVF9GT1JFQUNIKHdpbmRvd3MsIGwsIGRhdGEpCisgICAgeworICAgICAgICBN
aW5pQnJvd3NlciAqYXBwID0gKE1pbmlCcm93c2VyICopZGF0YTsKKyAgICAgICAgaWYgKGFwcC0+
ZWUgPT0gZWUpCisgICAgICAgICAgICByZXR1cm4gYXBwOworICAgIH0KKyAgICByZXR1cm4gTlVM
TDsKK30KKworc3RhdGljIHZvaWQgd2luZG93X2Nsb3NlKE1pbmlCcm93c2VyICphcHApCit7Cisg
ICAgdXJsX2Jhcl9kZWwoYXBwLT51cmxfYmFyKTsKKyAgICBlY29yZV9ldmFzX2ZyZWUoYXBwLT5l
ZSk7CisgICAgZnJlZShhcHApOworfQorCiBzdGF0aWMgRWluYV9Cb29sIG1haW5fc2lnbmFsX2V4
aXQodm9pZCAqZGF0YSwgaW50IGV2X3R5cGUsIHZvaWQgKmV2KQogeworICAgIE1pbmlCcm93c2Vy
ICphcHA7CisgICAgRUlOQV9MSVNUX0ZSRUUod2luZG93cywgYXBwKQorICAgICAgICB3aW5kb3df
Y2xvc2UoYXBwKTsKKwogICAgIGVjb3JlX21haW5fbG9vcF9xdWl0KCk7CiAgICAgcmV0dXJuIEVJ
TkFfVFJVRTsKIH0KIAotc3RhdGljIHZvaWQgY2xvc2VXaW5kb3coRWNvcmVfRXZhcyAqZWUpCitz
dGF0aWMgdm9pZCBvbl9lY29yZV9ldmFzX2RlbGV0ZShFY29yZV9FdmFzICplZSkKIHsKLSAgICBl
Y29yZV9tYWluX2xvb3BfcXVpdCgpOworICAgIE1pbmlCcm93c2VyICphcHAgPSBicm93c2VyX2Zp
bmQoZWUpOworCisgICAgd2luZG93X2Nsb3NlKGFwcCk7CisgICAgd2luZG93cyA9IGVpbmFfbGlz
dF9yZW1vdmUod2luZG93cywgYXBwKTsKKworICAgIGlmICghd2luZG93cykKKyAgICAgICAgZWNv
cmVfbWFpbl9sb29wX3F1aXQoKTsKIH0KIAogc3RhdGljIHZvaWQgb25fZWNvcmVfZXZhc19yZXNp
emUoRWNvcmVfRXZhcyAqZWUpCiB7CisgICAgTWluaUJyb3dzZXIgKmFwcDsKICAgICBFdmFzX09i
amVjdCAqd2VidmlldzsKICAgICBpbnQgdywgaDsKIAogICAgIGVjb3JlX2V2YXNfZ2VvbWV0cnlf
Z2V0KGVlLCBOVUxMLCBOVUxMLCAmdywgJmgpOwogCiAgICAgLyogUmVzaXplIFVSTCBiYXIgKi8K
LSAgICB1cmxfYmFyX3dpZHRoX3NldChicm93c2VyLT51cmxfYmFyLCB3KTsKKyAgICBhcHAgPSBi
cm93c2VyX2ZpbmQoZWUpOworICAgIGlmICghYXBwKQorICAgICAgICByZXR1cm47CisKKyAgICB1
cmxfYmFyX3dpZHRoX3NldChhcHAtPnVybF9iYXIsIHcpOwogCiAgICAgd2VidmlldyA9IGV2YXNf
b2JqZWN0X25hbWVfZmluZChlY29yZV9ldmFzX2dldChlZSksICJicm93c2VyIik7CiAgICAgZXZh
c19vYmplY3RfbW92ZSh3ZWJ2aWV3LCAwLCBVUkxfQkFSX0hFSUdIVCk7CkBAIC0xMTksMTEgKzE2
MCwxNCBAQCBvbl9rZXlfZG93bih2b2lkICpkYXRhLCBFdmFzICplLCBFdmFzX09iamVjdCAqb2Jq
LCB2b2lkICpldmVudF9pbmZvKQogICAgICAgICBpbmZvKCJTZXQgZW5jb2RpbmcgKEYzKSBwcmVz
c2VkLiBOZXcgZW5jb2RpbmcgdG8gJXMiLCBlbmNvZGluZ3NbY3VycmVudEVuY29kaW5nXSk7CiAg
ICAgICAgIGV3a192aWV3X3NldHRpbmdfZW5jb2RpbmdfY3VzdG9tX3NldChvYmosIGVuY29kaW5n
c1tjdXJyZW50RW5jb2RpbmddKTsKICAgICB9IGVsc2UgaWYgKCFzdHJjbXAoZXYtPmtleSwgIkY1
IikpIHsKLSAgICAgICAgICAgIGluZm8oIlJlbG9hZCAoRjUpIHdhcyBwcmVzc2VkLCByZWxvYWRp
bmcuXG4iKTsKLSAgICAgICAgICAgIGV3a192aWV3X3JlbG9hZChvYmopOworICAgICAgICBpbmZv
KCJSZWxvYWQgKEY1KSB3YXMgcHJlc3NlZCwgcmVsb2FkaW5nLlxuIik7CisgICAgICAgIGV3a192
aWV3X3JlbG9hZChvYmopOwogICAgIH0gZWxzZSBpZiAoIXN0cmNtcChldi0+a2V5LCAiRjYiKSkg
ewotICAgICAgICAgICAgaW5mbygiU3RvcCAoRjYpIHdhcyBwcmVzc2VkLCBzdG9wIGxvYWRpbmcu
XG4iKTsKLSAgICAgICAgICAgIGV3a192aWV3X3N0b3Aob2JqKTsKKyAgICAgICAgaW5mbygiU3Rv
cCAoRjYpIHdhcyBwcmVzc2VkLCBzdG9wIGxvYWRpbmcuXG4iKTsKKyAgICAgICAgZXdrX3ZpZXdf
c3RvcChvYmopOworICAgIH0gZWxzZSBpZiAoIXN0cmNtcChldi0+a2V5LCAiRjkiKSkgeworICAg
ICAgICBpbmZvKCJDcmVhdGUgbmV3IHdpbmRvdyAoRjkpIHdhcyBwcmVzc2VkLlxuIik7CisgICAg
ICAgIHdpbmRvd19jcmVhdGUoREVGQVVMVF9VUkwsIGV2YXNfZW5naW5lKTsKICAgICB9CiB9CiAK
QEAgLTIxMSwyMSArMjU1LDMzIEBAIHF1aXQoRWluYV9Cb29sIHN1Y2Nlc3MsIGNvbnN0IGNoYXIg
Km1zZykKICAgICByZXR1cm4gRVhJVF9TVUNDRVNTOwogfQogCi1zdGF0aWMgTWluaUJyb3dzZXIg
KmJyb3dzZXJDcmVhdGUoY29uc3QgY2hhciAqdXJsLCBjb25zdCBjaGFyICplbmdpbmUpCitzdGF0
aWMgRWluYV9Cb29sIHdpbmRvd19jcmVhdGUoY29uc3QgY2hhciAqdXJsLCBjb25zdCBjaGFyICpl
dmFzX2VuZ2luZSkKIHsKICAgICBNaW5pQnJvd3NlciAqYXBwID0gbWFsbG9jKHNpemVvZihNaW5p
QnJvd3NlcikpOworICAgIGlmICghYXBwKSB7CisgICAgICAgIGluZm8oIkVSUk9SOiBjb3VsZCBu
b3QgY3JlYXRlIE1pbmlCcm93c2VyIHdpbmRvd1xuIik7CisgICAgICAgIHJldHVybiBFSU5BX0ZB
TFNFOworICAgIH0KIAotICAgIGFwcC0+ZWUgPSBlY29yZV9ldmFzX25ldyhlbmdpbmUsIDAsIDAs
IERFRkFVTFRfV0lEVEgsIERFRkFVTFRfSEVJR0hULCAwKTsKLSAgICBpZiAoIWFwcC0+ZWUpCi0g
ICAgICAgIHJldHVybiAwOworICAgIGFwcC0+ZWUgPSBlY29yZV9ldmFzX25ldyhldmFzX2VuZ2lu
ZSwgMCwgMCwgREVGQVVMVF9XSURUSCwgREVGQVVMVF9IRUlHSFQsIDApOworICAgIGlmICghYXBw
LT5lZSkgeworICAgICAgICBpbmZvKCJFUlJPUjogY291bGQgbm90IGNvbnN0cnVjdCBlY29yZS1l
dmFzXG4iKTsKKyAgICAgICAgZnJlZShhcHApOworICAgICAgICByZXR1cm4gRUlOQV9GQUxTRTsK
KyAgICB9CiAKICAgICBlY29yZV9ldmFzX3RpdGxlX3NldChhcHAtPmVlLCBBUFBfTkFNRSk7CiAg
ICAgZWNvcmVfZXZhc19jYWxsYmFja19yZXNpemVfc2V0KGFwcC0+ZWUsIG9uX2Vjb3JlX2V2YXNf
cmVzaXplKTsKICAgICBlY29yZV9ldmFzX2JvcmRlcmxlc3Nfc2V0KGFwcC0+ZWUsIDApOwogICAg
IGVjb3JlX2V2YXNfc2hvdyhhcHAtPmVlKTsKLSAgICBlY29yZV9ldmFzX2NhbGxiYWNrX2RlbGV0
ZV9yZXF1ZXN0X3NldChhcHAtPmVlLCBjbG9zZVdpbmRvdyk7CisgICAgZWNvcmVfZXZhc19jYWxs
YmFja19kZWxldGVfcmVxdWVzdF9zZXQoYXBwLT5lZSwgb25fZWNvcmVfZXZhc19kZWxldGUpOwog
CiAgICAgYXBwLT5ldmFzID0gZWNvcmVfZXZhc19nZXQoYXBwLT5lZSk7CisgICAgaWYgKCFhcHAt
PmV2YXMpIHsKKyAgICAgICAgaW5mbygiRVJST1I6IGNvdWxkIG5vdCBnZXQgZXZhcyBmcm9tIGV2
YXMtZWNvcmVcbiIpOworICAgICAgICBmcmVlKGFwcCk7CisgICAgICAgIHJldHVybiBFSU5BX0ZB
TFNFOworICAgIH0KIAogICAgIC8qIENyZWF0ZSB3ZWJ2aWV3ICovCiAgICAgYXBwLT5icm93c2Vy
ID0gZXdrX3ZpZXdfYWRkKGFwcC0+ZXZhcyk7CkBAIC0yNDksMTggKzMwNSwxOCBAQCBzdGF0aWMg
TWluaUJyb3dzZXIgKmJyb3dzZXJDcmVhdGUoY29uc3QgY2hhciAqdXJsLCBjb25zdCBjaGFyICpl
bmdpbmUpCiAgICAgYXBwLT51cmxfYmFyID0gdXJsX2Jhcl9hZGQoYXBwLT5icm93c2VyLCBERUZB
VUxUX1dJRFRIKTsKIAogICAgIGV3a192aWV3X3VyaV9zZXQoYXBwLT5icm93c2VyLCB1cmwpOwor
ICAgIHdpbmRvd3MgPSBlaW5hX2xpc3RfYXBwZW5kKHdpbmRvd3MsIGFwcCk7CiAKLSAgICByZXR1
cm4gYXBwOworICAgIHJldHVybiBFSU5BX1RSVUU7CiB9CiAKIGludCBtYWluKGludCBhcmdjLCBj
aGFyICphcmd2W10pCiB7CiAgICAgaW50IGFyZ3MgPSAxOwotICAgIGNoYXIgKmVuZ2luZSA9IE5V
TEw7CiAgICAgdW5zaWduZWQgY2hhciBxdWl0T3B0aW9uID0gMDsKIAogICAgIEVjb3JlX0dldG9w
dF9WYWx1ZSB2YWx1ZXNbXSA9IHsKLSAgICAgICAgRUNPUkVfR0VUT1BUX1ZBTFVFX1NUUihlbmdp
bmUpLAorICAgICAgICBFQ09SRV9HRVRPUFRfVkFMVUVfU1RSKGV2YXNfZW5naW5lKSwKICAgICAg
ICAgRUNPUkVfR0VUT1BUX1ZBTFVFX0JPT0wocXVpdE9wdGlvbiksCiAgICAgICAgIEVDT1JFX0dF
VE9QVF9WQUxVRV9CT09MKHF1aXRPcHRpb24pLAogICAgICAgICBFQ09SRV9HRVRPUFRfVkFMVUVf
Qk9PTChxdWl0T3B0aW9uKSwKQEAgLTI4MiwyMiArMzM4LDE4IEBAIGludCBtYWluKGludCBhcmdj
LCBjaGFyICphcmd2W10pCiAKICAgICBpZiAoYXJncyA8IGFyZ2MpIHsKICAgICAgICAgY2hhciAq
dXJsID0gdXJsX2Zyb21fdXNlcl9pbnB1dChhcmd2W2FyZ3NdKTsKLSAgICAgICAgYnJvd3NlciA9
IGJyb3dzZXJDcmVhdGUodXJsLCBlbmdpbmUpOworICAgICAgICBpZiAoIXdpbmRvd19jcmVhdGUo
dXJsLCBldmFzX2VuZ2luZSkpIHsKKyAgICAgICAgICAgIGZyZWUodXJsKTsKKyAgICAgICAgICAg
IHJldHVybiBxdWl0KEVJTkFfRkFMU0UsICJFUlJPUjogY291bGQgbm90IGNyZWF0ZSBicm93c2Vy
IHdpbmRvd1xuIik7CisgICAgICAgIH0KICAgICAgICAgZnJlZSh1cmwpOwotICAgIH0gZWxzZQot
ICAgICAgICBicm93c2VyID0gYnJvd3NlckNyZWF0ZShERUZBVUxUX1VSTCwgZW5naW5lKTsKLQot
ICAgIGlmICghYnJvd3NlcikKLSAgICAgICAgcmV0dXJuIHF1aXQoRUlOQV9GQUxTRSwgIkVSUk9S
OiBjb3VsZCBub3QgY3JlYXRlIGJyb3dzZXIuXG4iKTsKKyAgICB9IGVsc2UgaWYgKCF3aW5kb3df
Y3JlYXRlKERFRkFVTFRfVVJMLCBldmFzX2VuZ2luZSkpCisgICAgICAgIHJldHVybiBxdWl0KEVJ
TkFfRkFMU0UsICJFUlJPUjogY291bGQgbm90IGNyZWF0ZSBicm93c2VyIHdpbmRvd1xuIik7CiAK
ICAgICBFY29yZV9FdmVudF9IYW5kbGVyICpoYW5kbGUgPSBlY29yZV9ldmVudF9oYW5kbGVyX2Fk
ZChFQ09SRV9FVkVOVF9TSUdOQUxfRVhJVCwgbWFpbl9zaWduYWxfZXhpdCwgMCk7CiAKICAgICBl
Y29yZV9tYWluX2xvb3BfYmVnaW4oKTsKIAotICAgIHVybF9iYXJfZGVsKGJyb3dzZXItPnVybF9i
YXIpOwogICAgIGVjb3JlX2V2ZW50X2hhbmRsZXJfZGVsKGhhbmRsZSk7Ci0gICAgZWNvcmVfZXZh
c19mcmVlKGJyb3dzZXItPmVlKTsKLSAgICBmcmVlKGJyb3dzZXIpOwotCiAgICAgcmV0dXJuIHF1
aXQoRUlOQV9UUlVFLCBOVUxMKTsKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>167132</attachid>
            <date>2012-10-04 11:01:51 -0700</date>
            <delta_ts>2012-10-05 10:59:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-97884-20121005030057.patch</filename>
            <type>text/plain</type>
            <size>7667</size>
            <attacher name="Jinwoo Song">jinwoo7.song</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMwMzk3CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMTIwZDYzM2QyNjg5NjlhYmRlN2IwYzZkNmRiNjk4ZGI5
YjhlNjY1Mi4uYjE2YmI5MjNkNWMwODE4OWNhNzc0Mzc3ZDcyNWEyYjlhYWM1ZjZlZSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIy
IEBACisyMDEyLTEwLTA0ICBKaW53b28gU29uZyAgPGppbndvbzcuc29uZ0BzYW1zdW5nLmNvbT4K
KworICAgICAgICBbRUZMXVtXSzJdIFN1cHBvcnQgbXVsdGlwbGUgd2luZG93IGNyZWF0aW9uIGZv
ciBNaW5pQnJvd3NlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9OTc4ODQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBJbXBsZW1lbnQgdGhlIG11bHRpcGxlIHdpbmRvdyBjcmVhdGlvbiBmb3IgTWluaUJyb3dz
ZXIgYW5kIGJpbmQgdGhlICdGOScga2V5IGZvciBvcGVuaW5nIGEgbmV3IHdpbmRvdy4KKyAgICAg
ICAgQWxzbywgY2hhbmdlZCB0aGUgZnVuY3Rpb24gbmFtZSBhY2NvcmRpbmcgdG8gRUZMIGNvZGlu
ZyBzdHlsZS4KKworICAgICAgICAqIE1pbmlCcm93c2VyL2VmbC9tYWluLmM6CisgICAgICAgICh3
aW5kb3dfY2xvc2UpOgorICAgICAgICAobWFpbl9zaWduYWxfZXhpdCk6CisgICAgICAgIChvbl9l
Y29yZV9ldmFzX2RlbGV0ZSk6CisgICAgICAgIChvbl9lY29yZV9ldmFzX3Jlc2l6ZSk6CisgICAg
ICAgIChvbl9rZXlfZG93bik6CisgICAgICAgICh3aW5kb3dfY3JlYXRlKToKKyAgICAgICAgKG1h
aW4pOgorCiAyMDEyLTEwLTA0ICBDaHJpc3RvcGhlIER1bWV6ICA8Y2hyaXN0b3BoZS5kdW1lekBp
bnRlbC5jb20+CiAKICAgICAgICAgW0VGTF1bV0syXSBBZGQgc2V0dGluZyB0byBhbGxvdyBmaWxl
IGFjY2VzcyBmcm9tIGZpbGU6Ly8gVVJMcwpkaWZmIC0tZ2l0IGEvVG9vbHMvTWluaUJyb3dzZXIv
ZWZsL21haW4uYyBiL1Rvb2xzL01pbmlCcm93c2VyL2VmbC9tYWluLmMKaW5kZXggYmY2ZDdkMmE5
NDQ5OGFmNTU2ZmViYTU1MmU1ZGVkZDg3MGY4OTI5Yy4uYTdkMDE3Y2Y1NTI3MzY2NGUzZjQ2MTFh
YzQ1M2Q4YjliNjhmZTA3MiAxMDA2NDQKLS0tIGEvVG9vbHMvTWluaUJyb3dzZXIvZWZsL21haW4u
YworKysgYi9Ub29scy9NaW5pQnJvd3Nlci9lZmwvbWFpbi5jCkBAIC0zNyw2ICszNyw4IEBAIHN0
YXRpYyBjb25zdCBjaGFyIEFQUF9OQU1FW10gPSAiRUZMIE1pbmlCcm93c2VyIjsKICAgICB9IHdo
aWxlICgwKQogCiBzdGF0aWMgaW50IHZlcmJvc2UgPSAwOworc3RhdGljIEVpbmFfTGlzdCAqd2lu
ZG93cyA9IE5VTEw7CitzdGF0aWMgY2hhciAqZXZhc19lbmdpbmUgPSBOVUxMOwogCiB0eXBlZGVm
IHN0cnVjdCBfTWluaUJyb3dzZXIgewogICAgIEVjb3JlX0V2YXMgKmVlOwpAQCAtNDUsOCArNDcs
NiBAQCB0eXBlZGVmIHN0cnVjdCBfTWluaUJyb3dzZXIgewogICAgIFVybF9CYXIgKnVybF9iYXI7
CiB9IE1pbmlCcm93c2VyOwogCi1NaW5pQnJvd3NlciAqYnJvd3NlcjsKLQogc3RhdGljIGNvbnN0
IEVjb3JlX0dldG9wdCBvcHRpb25zID0gewogICAgICJNaW5pQnJvd3NlciIsCiAgICAgIiVwcm9n
IFtvcHRpb25zXSBbdXJsXSIsCkBAIC01Niw3ICs1Niw3IEBAIHN0YXRpYyBjb25zdCBFY29yZV9H
ZXRvcHQgb3B0aW9ucyA9IHsKICAgICAiVGVzdCBXZWIgQnJvd3NlciB1c2luZyB0aGUgRW5saWdo
dGVubWVudCBGb3VuZGF0aW9uIExpYnJhcmllcyBvZiBXZWJLaXQyIiwKICAgICBFSU5BX1RSVUUs
IHsKICAgICAgICAgRUNPUkVfR0VUT1BUX1NUT1JFX1NUUgotICAgICAgICAgICAgKCdlJywgImVu
Z2luZSIsICJlY29yZS1ldmFzIGVuZ2luZSB0byB1c2UuIiksCisgICAgICAgICAgICAoJ2UnLCAi
ZWNvcmUtZXZhcyBlbmdpbmUiLCAiZWNvcmUtZXZhcyBlbmdpbmUgdG8gdXNlLiIpLAogICAgICAg
ICBFQ09SRV9HRVRPUFRfQ0FMTEJBQ0tfTk9BUkdTCiAgICAgICAgICAgICAoJ0UnLCAibGlzdC1l
bmdpbmVzIiwgImxpc3QgZWNvcmUtZXZhcyBlbmdpbmVzLiIsCiAgICAgICAgICAgICAgZWNvcmVf
Z2V0b3B0X2NhbGxiYWNrX2Vjb3JlX2V2YXNfbGlzdF9lbmdpbmVzLCBOVUxMKSwKQEAgLTcwLDMw
ICs3MCw3MCBAQCBzdGF0aWMgY29uc3QgRWNvcmVfR2V0b3B0IG9wdGlvbnMgPSB7CiAgICAgfQog
fTsKIAorc3RhdGljIE1pbmlCcm93c2VyICp3aW5kb3dfY3JlYXRlKGNvbnN0IGNoYXIgKnVybCwg
Y29uc3QgY2hhciAqZXZhc19lbmdpbmUpOworCitzdGF0aWMgTWluaUJyb3dzZXIgKmJyb3dzZXJf
ZmluZChFY29yZV9FdmFzICplZSkKK3sKKyAgICBFaW5hX0xpc3QgKmw7CisgICAgdm9pZCAqZGF0
YTsKKworICAgIGlmICghZWUpCisgICAgICAgIHJldHVybiBOVUxMOworCisgICAgRUlOQV9MSVNU
X0ZPUkVBQ0god2luZG93cywgbCwgZGF0YSkKKyAgICB7CisgICAgICAgIE1pbmlCcm93c2VyICph
cHAgPSAoTWluaUJyb3dzZXIgKilkYXRhOworICAgICAgICBpZiAoYXBwLT5lZSA9PSBlZSkKKyAg
ICAgICAgICAgIHJldHVybiBhcHA7CisgICAgfQorICAgIHJldHVybiBOVUxMOworfQorCitzdGF0
aWMgdm9pZCB3aW5kb3dfY2xvc2UoTWluaUJyb3dzZXIgKmFwcCkKK3sKKyAgICB1cmxfYmFyX2Rl
bChhcHAtPnVybF9iYXIpOworICAgIGVjb3JlX2V2YXNfZnJlZShhcHAtPmVlKTsKKyAgICBmcmVl
KGFwcCk7Cit9CisKIHN0YXRpYyBFaW5hX0Jvb2wgbWFpbl9zaWduYWxfZXhpdCh2b2lkICpkYXRh
LCBpbnQgZXZfdHlwZSwgdm9pZCAqZXYpCiB7CisgICAgTWluaUJyb3dzZXIgKmFwcDsKKyAgICBF
SU5BX0xJU1RfRlJFRSh3aW5kb3dzLCBhcHApCisgICAgICAgIHdpbmRvd19jbG9zZShhcHApOwor
CiAgICAgZWNvcmVfbWFpbl9sb29wX3F1aXQoKTsKICAgICByZXR1cm4gRUlOQV9UUlVFOwogfQog
Ci1zdGF0aWMgdm9pZCBjbG9zZVdpbmRvdyhFY29yZV9FdmFzICplZSkKK3N0YXRpYyB2b2lkIG9u
X2Vjb3JlX2V2YXNfZGVsZXRlKEVjb3JlX0V2YXMgKmVlKQogewotICAgIGVjb3JlX21haW5fbG9v
cF9xdWl0KCk7CisgICAgTWluaUJyb3dzZXIgKmFwcCA9IGJyb3dzZXJfZmluZChlZSk7CisKKyAg
ICB3aW5kb3dfY2xvc2UoYXBwKTsKKyAgICB3aW5kb3dzID0gZWluYV9saXN0X3JlbW92ZSh3aW5k
b3dzLCBhcHApOworCisgICAgaWYgKCF3aW5kb3dzKQorICAgICAgICBlY29yZV9tYWluX2xvb3Bf
cXVpdCgpOwogfQogCiBzdGF0aWMgdm9pZCBvbl9lY29yZV9ldmFzX3Jlc2l6ZShFY29yZV9FdmFz
ICplZSkKIHsKKyAgICBNaW5pQnJvd3NlciAqYXBwOwogICAgIEV2YXNfT2JqZWN0ICp3ZWJ2aWV3
OwogICAgIGludCB3LCBoOwogCisgICAgYXBwID0gYnJvd3Nlcl9maW5kKGVlKTsKKyAgICBpZiAo
IWFwcCkKKyAgICAgICAgcmV0dXJuOworCiAgICAgZWNvcmVfZXZhc19nZW9tZXRyeV9nZXQoZWUs
IE5VTEwsIE5VTEwsICZ3LCAmaCk7CiAKICAgICAvKiBSZXNpemUgVVJMIGJhciAqLwotICAgIHVy
bF9iYXJfd2lkdGhfc2V0KGJyb3dzZXItPnVybF9iYXIsIHcpOworICAgIHVybF9iYXJfd2lkdGhf
c2V0KGFwcC0+dXJsX2Jhciwgdyk7CiAKLSAgICB3ZWJ2aWV3ID0gZXZhc19vYmplY3RfbmFtZV9m
aW5kKGVjb3JlX2V2YXNfZ2V0KGVlKSwgImJyb3dzZXIiKTsKLSAgICBldmFzX29iamVjdF9tb3Zl
KHdlYnZpZXcsIDAsIFVSTF9CQVJfSEVJR0hUKTsKLSAgICBldmFzX29iamVjdF9yZXNpemUod2Vi
dmlldywgdywgaCAtIFVSTF9CQVJfSEVJR0hUKTsKKyAgICBldmFzX29iamVjdF9tb3ZlKGFwcC0+
YnJvd3NlciwgMCwgVVJMX0JBUl9IRUlHSFQpOworICAgIGV2YXNfb2JqZWN0X3Jlc2l6ZShhcHAt
PmJyb3dzZXIsIHcsIGggLSBVUkxfQkFSX0hFSUdIVCk7CiB9CiAKIHN0YXRpYyB2b2lkCkBAIC0x
MTksMTEgKzE1OSwxNSBAQCBvbl9rZXlfZG93bih2b2lkICpkYXRhLCBFdmFzICplLCBFdmFzX09i
amVjdCAqb2JqLCB2b2lkICpldmVudF9pbmZvKQogICAgICAgICBpbmZvKCJTZXQgZW5jb2Rpbmcg
KEYzKSBwcmVzc2VkLiBOZXcgZW5jb2RpbmcgdG8gJXMiLCBlbmNvZGluZ3NbY3VycmVudEVuY29k
aW5nXSk7CiAgICAgICAgIGV3a192aWV3X3NldHRpbmdfZW5jb2RpbmdfY3VzdG9tX3NldChvYmos
IGVuY29kaW5nc1tjdXJyZW50RW5jb2RpbmddKTsKICAgICB9IGVsc2UgaWYgKCFzdHJjbXAoZXYt
PmtleSwgIkY1IikpIHsKLSAgICAgICAgICAgIGluZm8oIlJlbG9hZCAoRjUpIHdhcyBwcmVzc2Vk
LCByZWxvYWRpbmcuXG4iKTsKLSAgICAgICAgICAgIGV3a192aWV3X3JlbG9hZChvYmopOworICAg
ICAgICBpbmZvKCJSZWxvYWQgKEY1KSB3YXMgcHJlc3NlZCwgcmVsb2FkaW5nLlxuIik7CisgICAg
ICAgIGV3a192aWV3X3JlbG9hZChvYmopOwogICAgIH0gZWxzZSBpZiAoIXN0cmNtcChldi0+a2V5
LCAiRjYiKSkgewotICAgICAgICAgICAgaW5mbygiU3RvcCAoRjYpIHdhcyBwcmVzc2VkLCBzdG9w
IGxvYWRpbmcuXG4iKTsKLSAgICAgICAgICAgIGV3a192aWV3X3N0b3Aob2JqKTsKKyAgICAgICAg
aW5mbygiU3RvcCAoRjYpIHdhcyBwcmVzc2VkLCBzdG9wIGxvYWRpbmcuXG4iKTsKKyAgICAgICAg
ZXdrX3ZpZXdfc3RvcChvYmopOworICAgIH0gZWxzZSBpZiAoIXN0cmNtcChldi0+a2V5LCAiRjki
KSkgeworICAgICAgICBpbmZvKCJDcmVhdGUgbmV3IHdpbmRvdyAoRjkpIHdhcyBwcmVzc2VkLlxu
Iik7CisgICAgICAgIE1pbmlCcm93c2VyICphcHAgPSB3aW5kb3dfY3JlYXRlKERFRkFVTFRfVVJM
LCBldmFzX2VuZ2luZSk7CisgICAgICAgIHdpbmRvd3MgPSBlaW5hX2xpc3RfYXBwZW5kKHdpbmRv
d3MsIGFwcCk7CiAgICAgfQogfQogCkBAIC0yMTEsMjEgKzI1NSwzMyBAQCBxdWl0KEVpbmFfQm9v
bCBzdWNjZXNzLCBjb25zdCBjaGFyICptc2cpCiAgICAgcmV0dXJuIEVYSVRfU1VDQ0VTUzsKIH0K
IAotc3RhdGljIE1pbmlCcm93c2VyICpicm93c2VyQ3JlYXRlKGNvbnN0IGNoYXIgKnVybCwgY29u
c3QgY2hhciAqZW5naW5lKQorc3RhdGljIE1pbmlCcm93c2VyICp3aW5kb3dfY3JlYXRlKGNvbnN0
IGNoYXIgKnVybCwgY29uc3QgY2hhciAqZXZhc19lbmdpbmUpCiB7CiAgICAgTWluaUJyb3dzZXIg
KmFwcCA9IG1hbGxvYyhzaXplb2YoTWluaUJyb3dzZXIpKTsKKyAgICBpZiAoIWFwcCkgeworICAg
ICAgICBpbmZvKCJFUlJPUjogY291bGQgbm90IGNyZWF0ZSBNaW5pQnJvd3NlciB3aW5kb3dcbiIp
OworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CiAKLSAgICBhcHAtPmVlID0gZWNvcmVfZXZh
c19uZXcoZW5naW5lLCAwLCAwLCBERUZBVUxUX1dJRFRILCBERUZBVUxUX0hFSUdIVCwgMCk7Ci0g
ICAgaWYgKCFhcHAtPmVlKQotICAgICAgICByZXR1cm4gMDsKKyAgICBhcHAtPmVlID0gZWNvcmVf
ZXZhc19uZXcoZXZhc19lbmdpbmUsIDAsIDAsIERFRkFVTFRfV0lEVEgsIERFRkFVTFRfSEVJR0hU
LCAwKTsKKyAgICBpZiAoIWFwcC0+ZWUpIHsKKyAgICAgICAgaW5mbygiRVJST1I6IGNvdWxkIG5v
dCBjb25zdHJ1Y3QgZWNvcmUtZXZhc1xuIik7CisgICAgICAgIGZyZWUoYXBwKTsKKyAgICAgICAg
cmV0dXJuIE5VTEw7CisgICAgfQogCiAgICAgZWNvcmVfZXZhc190aXRsZV9zZXQoYXBwLT5lZSwg
QVBQX05BTUUpOwogICAgIGVjb3JlX2V2YXNfY2FsbGJhY2tfcmVzaXplX3NldChhcHAtPmVlLCBv
bl9lY29yZV9ldmFzX3Jlc2l6ZSk7CiAgICAgZWNvcmVfZXZhc19ib3JkZXJsZXNzX3NldChhcHAt
PmVlLCAwKTsKICAgICBlY29yZV9ldmFzX3Nob3coYXBwLT5lZSk7Ci0gICAgZWNvcmVfZXZhc19j
YWxsYmFja19kZWxldGVfcmVxdWVzdF9zZXQoYXBwLT5lZSwgY2xvc2VXaW5kb3cpOworICAgIGVj
b3JlX2V2YXNfY2FsbGJhY2tfZGVsZXRlX3JlcXVlc3Rfc2V0KGFwcC0+ZWUsIG9uX2Vjb3JlX2V2
YXNfZGVsZXRlKTsKIAogICAgIGFwcC0+ZXZhcyA9IGVjb3JlX2V2YXNfZ2V0KGFwcC0+ZWUpOwor
ICAgIGlmICghYXBwLT5ldmFzKSB7CisgICAgICAgIGluZm8oIkVSUk9SOiBjb3VsZCBub3QgZ2V0
IGV2YXMgZnJvbSBldmFzLWVjb3JlXG4iKTsKKyAgICAgICAgZnJlZShhcHApOworICAgICAgICBy
ZXR1cm4gTlVMTDsKKyAgICB9CiAKICAgICAvKiBDcmVhdGUgd2VidmlldyAqLwogICAgIGFwcC0+
YnJvd3NlciA9IGV3a192aWV3X2FkZChhcHAtPmV2YXMpOwpAQCAtMjU5LDExICszMTUsMTAgQEAg
c3RhdGljIE1pbmlCcm93c2VyICpicm93c2VyQ3JlYXRlKGNvbnN0IGNoYXIgKnVybCwgY29uc3Qg
Y2hhciAqZW5naW5lKQogaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKIHsKICAgICBp
bnQgYXJncyA9IDE7Ci0gICAgY2hhciAqZW5naW5lID0gTlVMTDsKICAgICB1bnNpZ25lZCBjaGFy
IHF1aXRPcHRpb24gPSAwOwogCiAgICAgRWNvcmVfR2V0b3B0X1ZhbHVlIHZhbHVlc1tdID0gewot
ICAgICAgICBFQ09SRV9HRVRPUFRfVkFMVUVfU1RSKGVuZ2luZSksCisgICAgICAgIEVDT1JFX0dF
VE9QVF9WQUxVRV9TVFIoZXZhc19lbmdpbmUpLAogICAgICAgICBFQ09SRV9HRVRPUFRfVkFMVUVf
Qk9PTChxdWl0T3B0aW9uKSwKICAgICAgICAgRUNPUkVfR0VUT1BUX1ZBTFVFX0JPT0wocXVpdE9w
dGlvbiksCiAgICAgICAgIEVDT1JFX0dFVE9QVF9WQUxVRV9CT09MKHF1aXRPcHRpb24pLApAQCAt
MjgzLDI0ICszMzgsMjMgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKICAgICBp
ZiAocXVpdE9wdGlvbikKICAgICAgICAgcmV0dXJuIHF1aXQoRUlOQV9UUlVFLCBOVUxMKTsKIAor
ICAgIE1pbmlCcm93c2VyICphcHA7CiAgICAgaWYgKGFyZ3MgPCBhcmdjKSB7CiAgICAgICAgIGNo
YXIgKnVybCA9IHVybF9mcm9tX3VzZXJfaW5wdXQoYXJndlthcmdzXSk7Ci0gICAgICAgIGJyb3dz
ZXIgPSBicm93c2VyQ3JlYXRlKHVybCwgZW5naW5lKTsKKyAgICAgICAgYXBwID0gd2luZG93X2Ny
ZWF0ZSh1cmwsIGV2YXNfZW5naW5lKTsKICAgICAgICAgZnJlZSh1cmwpOwogICAgIH0gZWxzZQot
ICAgICAgICBicm93c2VyID0gYnJvd3NlckNyZWF0ZShERUZBVUxUX1VSTCwgZW5naW5lKTsKKyAg
ICAgICAgYXBwID0gd2luZG93X2NyZWF0ZShERUZBVUxUX1VSTCwgZXZhc19lbmdpbmUpOwogCi0g
ICAgaWYgKCFicm93c2VyKQotICAgICAgICByZXR1cm4gcXVpdChFSU5BX0ZBTFNFLCAiRVJST1I6
IGNvdWxkIG5vdCBjcmVhdGUgYnJvd3Nlci5cbiIpOworICAgIGlmICghYXBwKQorICAgICAgICBy
ZXR1cm4gcXVpdChFSU5BX0ZBTFNFLCAiRVJST1I6IGNvdWxkIG5vdCBjcmVhdGUgYnJvd3NlciB3
aW5kb3dcbiIpOworCisgICAgd2luZG93cyA9IGVpbmFfbGlzdF9hcHBlbmQod2luZG93cywgYXBw
KTsKIAogICAgIEVjb3JlX0V2ZW50X0hhbmRsZXIgKmhhbmRsZSA9IGVjb3JlX2V2ZW50X2hhbmRs
ZXJfYWRkKEVDT1JFX0VWRU5UX1NJR05BTF9FWElULCBtYWluX3NpZ25hbF9leGl0LCAwKTsKIAog
ICAgIGVjb3JlX21haW5fbG9vcF9iZWdpbigpOwogCi0gICAgdXJsX2Jhcl9kZWwoYnJvd3Nlci0+
dXJsX2Jhcik7CiAgICAgZWNvcmVfZXZlbnRfaGFuZGxlcl9kZWwoaGFuZGxlKTsKLSAgICBlY29y
ZV9ldmFzX2ZyZWUoYnJvd3Nlci0+ZWUpOwotICAgIGZyZWUoYnJvd3Nlcik7Ci0KICAgICByZXR1
cm4gcXVpdChFSU5BX1RSVUUsIE5VTEwpOwogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>167311</attachid>
            <date>2012-10-05 05:09:39 -0700</date>
            <delta_ts>2012-10-05 11:04:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-97884-20121005210845.patch</filename>
            <type>text/plain</type>
            <size>7803</size>
            <attacher name="Jinwoo Song">jinwoo7.song</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMwNDkxCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMTkyMjFiMWEyYjM0NmFjNDU5OWVlY2E3ZDgyOTFmNTM2
MjRlNDQ4ZC4uZjc5YWI4ZDFhZjFjMTAxOGMwNjA0OGY0MWYzNTk2NDQ3NDBlZDE4ZSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIy
IEBACisyMDEyLTEwLTA1ICBKaW53b28gU29uZyAgPGppbndvbzcuc29uZ0BzYW1zdW5nLmNvbT4K
KworICAgICAgICBbRUZMXVtXSzJdIFN1cHBvcnQgbXVsdGlwbGUgd2luZG93IGNyZWF0aW9uIGZv
ciBNaW5pQnJvd3NlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9OTc4ODQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBJbXBsZW1lbnQgdGhlIG11bHRpcGxlIHdpbmRvdyBjcmVhdGlvbiBmb3IgTWluaUJyb3dz
ZXIgYW5kIGJpbmQgdGhlICdGOScga2V5IGZvciBvcGVuaW5nIGEgbmV3IHdpbmRvdy4KKyAgICAg
ICAgQWxzbywgY2hhbmdlZCB0aGUgZnVuY3Rpb24gbmFtZSBhY2NvcmRpbmcgdG8gRUZMIGNvZGlu
ZyBzdHlsZS4KKworICAgICAgICAqIE1pbmlCcm93c2VyL2VmbC9tYWluLmM6CisgICAgICAgICh3
aW5kb3dfY2xvc2UpOgorICAgICAgICAobWFpbl9zaWduYWxfZXhpdCk6CisgICAgICAgIChvbl9l
Y29yZV9ldmFzX2RlbGV0ZSk6CisgICAgICAgIChvbl9lY29yZV9ldmFzX3Jlc2l6ZSk6CisgICAg
ICAgIChvbl9rZXlfZG93bik6CisgICAgICAgICh3aW5kb3dfY3JlYXRlKToKKyAgICAgICAgKG1h
aW4pOgorCiAyMDEyLTEwLTA1ICBDc2FiYSBPc3p0cm9nb27DoWMgIDxvc3N5QHdlYmtpdC5vcmc+
CiAKICAgICAgICAgW1F0XSBFbmFibGUgQ1NTIGNvbXBvc2l0aW5nIGJ5IGRlZmF1bHQKZGlmZiAt
LWdpdCBhL1Rvb2xzL01pbmlCcm93c2VyL2VmbC9tYWluLmMgYi9Ub29scy9NaW5pQnJvd3Nlci9l
ZmwvbWFpbi5jCmluZGV4IDBjNmQyNzZiMGVlNWQxZmMyMjE3NDY5MTljZTg3NmQ0Nzk2N2NhNjku
LjRhMzM5ZTc5NTM1MjRkNDA4YzRlODY1YjUxZTQzNDA1NjJmZjBiOTIgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL01pbmlCcm93c2VyL2VmbC9tYWluLmMKKysrIGIvVG9vbHMvTWluaUJyb3dzZXIvZWZsL21h
aW4uYwpAQCAtMzcsNiArMzcsOCBAQCBzdGF0aWMgY29uc3QgY2hhciBBUFBfTkFNRVtdID0gIkVG
TCBNaW5pQnJvd3NlciI7CiAgICAgfSB3aGlsZSAoMCkKIAogc3RhdGljIGludCB2ZXJib3NlID0g
MTsKK3N0YXRpYyBFaW5hX0xpc3QgKndpbmRvd3MgPSBOVUxMOworc3RhdGljIGNoYXIgKmV2YXNf
ZW5naW5lID0gTlVMTDsKIAogdHlwZWRlZiBzdHJ1Y3QgX01pbmlCcm93c2VyIHsKICAgICBFY29y
ZV9FdmFzICplZTsKQEAgLTQ1LDggKzQ3LDYgQEAgdHlwZWRlZiBzdHJ1Y3QgX01pbmlCcm93c2Vy
IHsKICAgICBVcmxfQmFyICp1cmxfYmFyOwogfSBNaW5pQnJvd3NlcjsKIAotTWluaUJyb3dzZXIg
KmJyb3dzZXI7Ci0KIHN0YXRpYyBjb25zdCBFY29yZV9HZXRvcHQgb3B0aW9ucyA9IHsKICAgICAi
TWluaUJyb3dzZXIiLAogICAgICIlcHJvZyBbb3B0aW9uc10gW3VybF0iLApAQCAtNTYsNyArNTYs
NyBAQCBzdGF0aWMgY29uc3QgRWNvcmVfR2V0b3B0IG9wdGlvbnMgPSB7CiAgICAgIlRlc3QgV2Vi
IEJyb3dzZXIgdXNpbmcgdGhlIEVubGlnaHRlbm1lbnQgRm91bmRhdGlvbiBMaWJyYXJpZXMgb2Yg
V2ViS2l0MiIsCiAgICAgRUlOQV9UUlVFLCB7CiAgICAgICAgIEVDT1JFX0dFVE9QVF9TVE9SRV9T
VFIKLSAgICAgICAgICAgICgnZScsICJlbmdpbmUiLCAiZWNvcmUtZXZhcyBlbmdpbmUgdG8gdXNl
LiIpLAorICAgICAgICAgICAgKCdlJywgImVjb3JlLWV2YXMgZW5naW5lIiwgImVjb3JlLWV2YXMg
ZW5naW5lIHRvIHVzZS4iKSwKICAgICAgICAgRUNPUkVfR0VUT1BUX0NBTExCQUNLX05PQVJHUwog
ICAgICAgICAgICAgKCdFJywgImxpc3QtZW5naW5lcyIsICJsaXN0IGVjb3JlLWV2YXMgZW5naW5l
cy4iLAogICAgICAgICAgICAgIGVjb3JlX2dldG9wdF9jYWxsYmFja19lY29yZV9ldmFzX2xpc3Rf
ZW5naW5lcywgTlVMTCksCkBAIC03MiwzMCArNzIsNzAgQEAgc3RhdGljIGNvbnN0IEVjb3JlX0dl
dG9wdCBvcHRpb25zID0gewogICAgIH0KIH07CiAKK3N0YXRpYyBNaW5pQnJvd3NlciAqd2luZG93
X2NyZWF0ZShjb25zdCBjaGFyICp1cmwsIGNvbnN0IGNoYXIgKmV2YXNfZW5naW5lLCBFaW5hX0Jv
b2wgZnJhbWVfZmxhdHRlbmluZyk7CisKK3N0YXRpYyBNaW5pQnJvd3NlciAqYnJvd3Nlcl9maW5k
KEVjb3JlX0V2YXMgKmVlKQoreworICAgIEVpbmFfTGlzdCAqbDsKKyAgICB2b2lkICpkYXRhOwor
CisgICAgaWYgKCFlZSkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisKKyAgICBFSU5BX0xJU1RfRk9S
RUFDSCh3aW5kb3dzLCBsLCBkYXRhKQorICAgIHsKKyAgICAgICAgTWluaUJyb3dzZXIgKmFwcCA9
IChNaW5pQnJvd3NlciAqKWRhdGE7CisgICAgICAgIGlmIChhcHAtPmVlID09IGVlKQorICAgICAg
ICAgICAgcmV0dXJuIGFwcDsKKyAgICB9CisgICAgcmV0dXJuIE5VTEw7Cit9CisKK3N0YXRpYyB2
b2lkIHdpbmRvd19jbG9zZShNaW5pQnJvd3NlciAqYXBwKQoreworICAgIHVybF9iYXJfZGVsKGFw
cC0+dXJsX2Jhcik7CisgICAgZWNvcmVfZXZhc19mcmVlKGFwcC0+ZWUpOworICAgIGZyZWUoYXBw
KTsKK30KKwogc3RhdGljIEVpbmFfQm9vbCBtYWluX3NpZ25hbF9leGl0KHZvaWQgKmRhdGEsIGlu
dCBldl90eXBlLCB2b2lkICpldikKIHsKKyAgICBNaW5pQnJvd3NlciAqYXBwOworICAgIEVJTkFf
TElTVF9GUkVFKHdpbmRvd3MsIGFwcCkKKyAgICAgICAgd2luZG93X2Nsb3NlKGFwcCk7CisKICAg
ICBlY29yZV9tYWluX2xvb3BfcXVpdCgpOwogICAgIHJldHVybiBFSU5BX1RSVUU7CiB9CiAKLXN0
YXRpYyB2b2lkIGNsb3NlV2luZG93KEVjb3JlX0V2YXMgKmVlKQorc3RhdGljIHZvaWQgb25fZWNv
cmVfZXZhc19kZWxldGUoRWNvcmVfRXZhcyAqZWUpCiB7Ci0gICAgZWNvcmVfbWFpbl9sb29wX3F1
aXQoKTsKKyAgICBNaW5pQnJvd3NlciAqYXBwID0gYnJvd3Nlcl9maW5kKGVlKTsKKworICAgIHdp
bmRvd19jbG9zZShhcHApOworICAgIHdpbmRvd3MgPSBlaW5hX2xpc3RfcmVtb3ZlKHdpbmRvd3Ms
IGFwcCk7CisKKyAgICBpZiAoIXdpbmRvd3MpCisgICAgICAgIGVjb3JlX21haW5fbG9vcF9xdWl0
KCk7CiB9CiAKIHN0YXRpYyB2b2lkIG9uX2Vjb3JlX2V2YXNfcmVzaXplKEVjb3JlX0V2YXMgKmVl
KQogeworICAgIE1pbmlCcm93c2VyICphcHA7CiAgICAgRXZhc19PYmplY3QgKndlYnZpZXc7CiAg
ICAgaW50IHcsIGg7CiAKKyAgICBhcHAgPSBicm93c2VyX2ZpbmQoZWUpOworICAgIGlmICghYXBw
KQorICAgICAgICByZXR1cm47CisKICAgICBlY29yZV9ldmFzX2dlb21ldHJ5X2dldChlZSwgTlVM
TCwgTlVMTCwgJncsICZoKTsKIAogICAgIC8qIFJlc2l6ZSBVUkwgYmFyICovCi0gICAgdXJsX2Jh
cl93aWR0aF9zZXQoYnJvd3Nlci0+dXJsX2Jhciwgdyk7CisgICAgdXJsX2Jhcl93aWR0aF9zZXQo
YXBwLT51cmxfYmFyLCB3KTsKIAotICAgIHdlYnZpZXcgPSBldmFzX29iamVjdF9uYW1lX2ZpbmQo
ZWNvcmVfZXZhc19nZXQoZWUpLCAiYnJvd3NlciIpOwotICAgIGV2YXNfb2JqZWN0X21vdmUod2Vi
dmlldywgMCwgVVJMX0JBUl9IRUlHSFQpOwotICAgIGV2YXNfb2JqZWN0X3Jlc2l6ZSh3ZWJ2aWV3
LCB3LCBoIC0gVVJMX0JBUl9IRUlHSFQpOworICAgIGV2YXNfb2JqZWN0X21vdmUoYXBwLT5icm93
c2VyLCAwLCBVUkxfQkFSX0hFSUdIVCk7CisgICAgZXZhc19vYmplY3RfcmVzaXplKGFwcC0+YnJv
d3NlciwgdywgaCAtIFVSTF9CQVJfSEVJR0hUKTsKIH0KIAogc3RhdGljIHZvaWQKQEAgLTEyMSwx
MSArMTYxLDE1IEBAIG9uX2tleV9kb3duKHZvaWQgKmRhdGEsIEV2YXMgKmUsIEV2YXNfT2JqZWN0
ICpvYmosIHZvaWQgKmV2ZW50X2luZm8pCiAgICAgICAgIGluZm8oIlNldCBlbmNvZGluZyAoRjMp
IHByZXNzZWQuIE5ldyBlbmNvZGluZyB0byAlcyIsIGVuY29kaW5nc1tjdXJyZW50RW5jb2Rpbmdd
KTsKICAgICAgICAgZXdrX3ZpZXdfc2V0dGluZ19lbmNvZGluZ19jdXN0b21fc2V0KG9iaiwgZW5j
b2RpbmdzW2N1cnJlbnRFbmNvZGluZ10pOwogICAgIH0gZWxzZSBpZiAoIXN0cmNtcChldi0+a2V5
LCAiRjUiKSkgewotICAgICAgICAgICAgaW5mbygiUmVsb2FkIChGNSkgd2FzIHByZXNzZWQsIHJl
bG9hZGluZy5cbiIpOwotICAgICAgICAgICAgZXdrX3ZpZXdfcmVsb2FkKG9iaik7CisgICAgICAg
IGluZm8oIlJlbG9hZCAoRjUpIHdhcyBwcmVzc2VkLCByZWxvYWRpbmcuXG4iKTsKKyAgICAgICAg
ZXdrX3ZpZXdfcmVsb2FkKG9iaik7CiAgICAgfSBlbHNlIGlmICghc3RyY21wKGV2LT5rZXksICJG
NiIpKSB7Ci0gICAgICAgICAgICBpbmZvKCJTdG9wIChGNikgd2FzIHByZXNzZWQsIHN0b3AgbG9h
ZGluZy5cbiIpOwotICAgICAgICAgICAgZXdrX3ZpZXdfc3RvcChvYmopOworICAgICAgICBpbmZv
KCJTdG9wIChGNikgd2FzIHByZXNzZWQsIHN0b3AgbG9hZGluZy5cbiIpOworICAgICAgICBld2tf
dmlld19zdG9wKG9iaik7CisgICAgfSBlbHNlIGlmICghc3RyY21wKGV2LT5rZXksICJGOSIpKSB7
CisgICAgICAgIGluZm8oIkNyZWF0ZSBuZXcgd2luZG93IChGOSkgd2FzIHByZXNzZWQuXG4iKTsK
KyAgICAgICAgTWluaUJyb3dzZXIgKmFwcCA9IHdpbmRvd19jcmVhdGUoREVGQVVMVF9VUkwsIGV2
YXNfZW5naW5lLCBFSU5BX0ZBTFNFKTsKKyAgICAgICAgd2luZG93cyA9IGVpbmFfbGlzdF9hcHBl
bmQod2luZG93cywgYXBwKTsKICAgICB9CiB9CiAKQEAgLTI0OCwyMSArMjkyLDMzIEBAIHF1aXQo
RWluYV9Cb29sIHN1Y2Nlc3MsIGNvbnN0IGNoYXIgKm1zZykKICAgICByZXR1cm4gRVhJVF9TVUND
RVNTOwogfQogCi1zdGF0aWMgTWluaUJyb3dzZXIgKmJyb3dzZXJDcmVhdGUoY29uc3QgY2hhciAq
dXJsLCBjb25zdCBjaGFyICplbmdpbmUsIEVpbmFfQm9vbCBmcmFtZV9mbGF0dGVuaW5nKQorc3Rh
dGljIE1pbmlCcm93c2VyICp3aW5kb3dfY3JlYXRlKGNvbnN0IGNoYXIgKnVybCwgY29uc3QgY2hh
ciAqZW5naW5lLCBFaW5hX0Jvb2wgZnJhbWVfZmxhdHRlbmluZykKIHsKICAgICBNaW5pQnJvd3Nl
ciAqYXBwID0gbWFsbG9jKHNpemVvZihNaW5pQnJvd3NlcikpOworICAgIGlmICghYXBwKSB7Cisg
ICAgICAgIGluZm8oIkVSUk9SOiBjb3VsZCBub3QgY3JlYXRlIE1pbmlCcm93c2VyIHdpbmRvd1xu
Iik7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KIAotICAgIGFwcC0+ZWUgPSBlY29yZV9l
dmFzX25ldyhlbmdpbmUsIDAsIDAsIERFRkFVTFRfV0lEVEgsIERFRkFVTFRfSEVJR0hULCAwKTsK
LSAgICBpZiAoIWFwcC0+ZWUpCi0gICAgICAgIHJldHVybiAwOworICAgIGFwcC0+ZWUgPSBlY29y
ZV9ldmFzX25ldyhldmFzX2VuZ2luZSwgMCwgMCwgREVGQVVMVF9XSURUSCwgREVGQVVMVF9IRUlH
SFQsIDApOworICAgIGlmICghYXBwLT5lZSkgeworICAgICAgICBpbmZvKCJFUlJPUjogY291bGQg
bm90IGNvbnN0cnVjdCBlY29yZS1ldmFzXG4iKTsKKyAgICAgICAgZnJlZShhcHApOworICAgICAg
ICByZXR1cm4gTlVMTDsKKyAgICB9CiAKICAgICBlY29yZV9ldmFzX3RpdGxlX3NldChhcHAtPmVl
LCBBUFBfTkFNRSk7CiAgICAgZWNvcmVfZXZhc19jYWxsYmFja19yZXNpemVfc2V0KGFwcC0+ZWUs
IG9uX2Vjb3JlX2V2YXNfcmVzaXplKTsKICAgICBlY29yZV9ldmFzX2JvcmRlcmxlc3Nfc2V0KGFw
cC0+ZWUsIDApOwogICAgIGVjb3JlX2V2YXNfc2hvdyhhcHAtPmVlKTsKLSAgICBlY29yZV9ldmFz
X2NhbGxiYWNrX2RlbGV0ZV9yZXF1ZXN0X3NldChhcHAtPmVlLCBjbG9zZVdpbmRvdyk7CisgICAg
ZWNvcmVfZXZhc19jYWxsYmFja19kZWxldGVfcmVxdWVzdF9zZXQoYXBwLT5lZSwgb25fZWNvcmVf
ZXZhc19kZWxldGUpOwogCiAgICAgYXBwLT5ldmFzID0gZWNvcmVfZXZhc19nZXQoYXBwLT5lZSk7
CisgICAgaWYgKCFhcHAtPmV2YXMpIHsKKyAgICAgICAgaW5mbygiRVJST1I6IGNvdWxkIG5vdCBn
ZXQgZXZhcyBmcm9tIGV2YXMtZWNvcmVcbiIpOworICAgICAgICBmcmVlKGFwcCk7CisgICAgICAg
IHJldHVybiBOVUxMOworICAgIH0KIAogICAgIC8qIENyZWF0ZSB3ZWJ2aWV3ICovCiAgICAgYXBw
LT5icm93c2VyID0gZXdrX3ZpZXdfYWRkKGFwcC0+ZXZhcyk7CkBAIC0zMDAsMTMgKzM1NiwxMyBA
QCBzdGF0aWMgTWluaUJyb3dzZXIgKmJyb3dzZXJDcmVhdGUoY29uc3QgY2hhciAqdXJsLCBjb25z
dCBjaGFyICplbmdpbmUsIEVpbmFfQm9vbAogaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3Zb
XSkKIHsKICAgICBpbnQgYXJncyA9IDE7Ci0gICAgY2hhciAqZW5naW5lID0gTlVMTDsKICAgICB1
bnNpZ25lZCBjaGFyIHF1aXRPcHRpb24gPSAwOworICAgIE1pbmlCcm93c2VyICphcHA7CiAKICAg
ICBFaW5hX0Jvb2wgZnJhbWVfZmxhdHRlbmluZyA9IEVJTkFfRkFMU0U7CiAKICAgICBFY29yZV9H
ZXRvcHRfVmFsdWUgdmFsdWVzW10gPSB7Ci0gICAgICAgIEVDT1JFX0dFVE9QVF9WQUxVRV9TVFIo
ZW5naW5lKSwKKyAgICAgICAgRUNPUkVfR0VUT1BUX1ZBTFVFX1NUUihldmFzX2VuZ2luZSksCiAg
ICAgICAgIEVDT1JFX0dFVE9QVF9WQUxVRV9CT09MKHF1aXRPcHRpb24pLAogICAgICAgICBFQ09S
RV9HRVRPUFRfVkFMVUVfQk9PTChmcmFtZV9mbGF0dGVuaW5nKSwKICAgICAgICAgRUNPUkVfR0VU
T1BUX1ZBTFVFX0JPT0wocXVpdE9wdGlvbiksCkBAIC0zMjksMjIgKzM4NSwyMSBAQCBpbnQgbWFp
bihpbnQgYXJnYywgY2hhciAqYXJndltdKQogCiAgICAgaWYgKGFyZ3MgPCBhcmdjKSB7CiAgICAg
ICAgIGNoYXIgKnVybCA9IHVybF9mcm9tX3VzZXJfaW5wdXQoYXJndlthcmdzXSk7Ci0gICAgICAg
IGJyb3dzZXIgPSBicm93c2VyQ3JlYXRlKHVybCwgZW5naW5lLCBmcmFtZV9mbGF0dGVuaW5nKTsK
KyAgICAgICAgYXBwID0gd2luZG93X2NyZWF0ZSh1cmwsIGV2YXNfZW5naW5lLCBmcmFtZV9mbGF0
dGVuaW5nKTsKICAgICAgICAgZnJlZSh1cmwpOwogICAgIH0gZWxzZQotICAgICAgICBicm93c2Vy
ID0gYnJvd3NlckNyZWF0ZShERUZBVUxUX1VSTCwgZW5naW5lLCBmcmFtZV9mbGF0dGVuaW5nKTsK
KyAgICAgICAgYXBwID0gd2luZG93X2NyZWF0ZShERUZBVUxUX1VSTCwgZXZhc19lbmdpbmUsIGZy
YW1lX2ZsYXR0ZW5pbmcpOworCisgICAgaWYgKCFhcHApCisgICAgICAgIHJldHVybiBxdWl0KEVJ
TkFfRkFMU0UsICJFUlJPUjogY291bGQgbm90IGNyZWF0ZSBicm93c2VyIHdpbmRvdy5cbiIpOwog
Ci0gICAgaWYgKCFicm93c2VyKQotICAgICAgICByZXR1cm4gcXVpdChFSU5BX0ZBTFNFLCAiRVJS
T1I6IGNvdWxkIG5vdCBjcmVhdGUgYnJvd3Nlci5cbiIpOworICAgIHdpbmRvd3MgPSBlaW5hX2xp
c3RfYXBwZW5kKHdpbmRvd3MsIGFwcCk7CiAKICAgICBFY29yZV9FdmVudF9IYW5kbGVyICpoYW5k
bGUgPSBlY29yZV9ldmVudF9oYW5kbGVyX2FkZChFQ09SRV9FVkVOVF9TSUdOQUxfRVhJVCwgbWFp
bl9zaWduYWxfZXhpdCwgMCk7CiAKICAgICBlY29yZV9tYWluX2xvb3BfYmVnaW4oKTsKIAotICAg
IHVybF9iYXJfZGVsKGJyb3dzZXItPnVybF9iYXIpOwogICAgIGVjb3JlX2V2ZW50X2hhbmRsZXJf
ZGVsKGhhbmRsZSk7Ci0gICAgZWNvcmVfZXZhc19mcmVlKGJyb3dzZXItPmVlKTsKLSAgICBmcmVl
KGJyb3dzZXIpOwogCiAgICAgcmV0dXJuIHF1aXQoRUlOQV9UUlVFLCBOVUxMKTsKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>167352</attachid>
            <date>2012-10-05 11:04:45 -0700</date>
            <delta_ts>2012-10-07 22:51:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-97884-20121006030348.patch</filename>
            <type>text/plain</type>
            <size>11248</size>
            <attacher name="Jinwoo Song">jinwoo7.song</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMwNTE5CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggOTY3MWYyN2Q3NTAxMjdhMTYzZDU3OTU4MmFkYjg1NWNl
Y2M5ZWMyNC4uOTQxNzliNzJlN2EyYTA2NDlhNmVkZmM5NDg3MjYxMGJiODQxNGI1ZiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1
IEBACisyMDEyLTEwLTA1ICBKaW53b28gU29uZyAgPGppbndvbzcuc29uZ0BzYW1zdW5nLmNvbT4K
KworICAgICAgICBbRUZMXVtXSzJdIFN1cHBvcnQgbXVsdGlwbGUgd2luZG93IGNyZWF0aW9uIGZv
ciBNaW5pQnJvd3NlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9OTc4ODQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBJbXBsZW1lbnQgdGhlIG11bHRpcGxlIHdpbmRvdyBjcmVhdGlvbiBmb3IgTWluaUJyb3dz
ZXIgYW5kIGJpbmQgdGhlICdGOScga2V5IGZvciBvcGVuaW5nIGEgbmV3IHdpbmRvdy4KKyAgICAg
ICAgQWxzbywgY2hhbmdlZCB0aGUgZnVuY3Rpb24gbmFtZSBhY2NvcmRpbmcgdG8gRUZMIGNvZGlu
ZyBzdHlsZS4KKworICAgICAgICAqIE1pbmlCcm93c2VyL2VmbC9tYWluLmM6CisgICAgICAgIChf
TWluaUJyb3dzZXIpOgorICAgICAgICAod2luZG93X2Nsb3NlKToKKyAgICAgICAgKG1haW5fc2ln
bmFsX2V4aXQpOgorICAgICAgICAob25fZWNvcmVfZXZhc19kZWxldGUpOgorICAgICAgICAob25f
ZWNvcmVfZXZhc19yZXNpemUpOgorICAgICAgICAob25fa2V5X2Rvd24pOgorICAgICAgICAob25f
dXJsX2NoYW5nZWQpOgorICAgICAgICAob25fcHJvZ3Jlc3MpOgorICAgICAgICAod2luZG93X2Ny
ZWF0ZSk6CisgICAgICAgIChtYWluKToKKwogMjAxMi0xMC0wNSAgQ2hyaXN0b3BoZSBEdW1leiAg
PGNocmlzdG9waGUuZHVtZXpAaW50ZWwuY29tPgogCiAgICAgICAgIFtFRkxdW1dLMl0gRml4IG1r
dGVtcCgpIGNvbXBpbGF0aW9uIHdhcm5pbmcgaW4gTWluaWJyb3dzZXIKZGlmZiAtLWdpdCBhL1Rv
b2xzL01pbmlCcm93c2VyL2VmbC9tYWluLmMgYi9Ub29scy9NaW5pQnJvd3Nlci9lZmwvbWFpbi5j
CmluZGV4IGIwZDQ1MjA4NmIyNDRmYjg4ZDZmOTczNTE1MDllZWI0NTNkNDBmNjIuLjgyMzAyYTJm
YzVjZGViOTk0NGNkMjM1MTZlZmE4Y2YxNjZjYzNlYjUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL01pbmlC
cm93c2VyL2VmbC9tYWluLmMKKysrIGIvVG9vbHMvTWluaUJyb3dzZXIvZWZsL21haW4uYwpAQCAt
MzcsMTYgKzM3LDE2IEBAIHN0YXRpYyBjb25zdCBjaGFyIEFQUF9OQU1FW10gPSAiRUZMIE1pbmlC
cm93c2VyIjsKICAgICB9IHdoaWxlICgwKQogCiBzdGF0aWMgaW50IHZlcmJvc2UgPSAxOworc3Rh
dGljIEVpbmFfTGlzdCAqd2luZG93cyA9IE5VTEw7CitzdGF0aWMgY2hhciAqZXZhc19lbmdpbmVf
bmFtZSA9IE5VTEw7CiAKIHR5cGVkZWYgc3RydWN0IF9NaW5pQnJvd3NlciB7CiAgICAgRWNvcmVf
RXZhcyAqZWU7CiAgICAgRXZhcyAqZXZhczsKLSAgICBFdmFzX09iamVjdCAqYnJvd3NlcjsKKyAg
ICBFdmFzX09iamVjdCAqd2VidmlldzsKICAgICBVcmxfQmFyICp1cmxfYmFyOwogfSBNaW5pQnJv
d3NlcjsKIAotTWluaUJyb3dzZXIgKmJyb3dzZXI7Ci0KIHN0YXRpYyBjb25zdCBFY29yZV9HZXRv
cHQgb3B0aW9ucyA9IHsKICAgICAiTWluaUJyb3dzZXIiLAogICAgICIlcHJvZyBbb3B0aW9uc10g
W3VybF0iLApAQCAtNzIsMzAgKzcyLDcwIEBAIHN0YXRpYyBjb25zdCBFY29yZV9HZXRvcHQgb3B0
aW9ucyA9IHsKICAgICB9CiB9OwogCitzdGF0aWMgTWluaUJyb3dzZXIgKndpbmRvd19jcmVhdGUo
Y29uc3QgY2hhciAqdXJsLCBFaW5hX0Jvb2wgZnJhbWVfZmxhdHRlbmluZyk7CisKK3N0YXRpYyBN
aW5pQnJvd3NlciAqYnJvd3Nlcl93aW5kb3dfZmluZChFY29yZV9FdmFzICplZSkKK3sKKyAgICBF
aW5hX0xpc3QgKmw7CisgICAgdm9pZCAqZGF0YTsKKworICAgIGlmICghZWUpCisgICAgICAgIHJl
dHVybiBOVUxMOworCisgICAgRUlOQV9MSVNUX0ZPUkVBQ0god2luZG93cywgbCwgZGF0YSkKKyAg
ICB7CisgICAgICAgIE1pbmlCcm93c2VyICphcHAgPSAoTWluaUJyb3dzZXIgKilkYXRhOworICAg
ICAgICBpZiAoYXBwLT5lZSA9PSBlZSkKKyAgICAgICAgICAgIHJldHVybiBhcHA7CisgICAgfQor
ICAgIHJldHVybiBOVUxMOworfQorCitzdGF0aWMgdm9pZCB3aW5kb3dfY2xvc2UoTWluaUJyb3dz
ZXIgKmFwcCkKK3sKKyAgICB1cmxfYmFyX2RlbChhcHAtPnVybF9iYXIpOworICAgIGVjb3JlX2V2
YXNfZnJlZShhcHAtPmVlKTsKKyAgICBmcmVlKGFwcCk7Cit9CisKIHN0YXRpYyBFaW5hX0Jvb2wg
bWFpbl9zaWduYWxfZXhpdCh2b2lkICpkYXRhLCBpbnQgZXZfdHlwZSwgdm9pZCAqZXYpCiB7Cisg
ICAgTWluaUJyb3dzZXIgKmFwcDsKKyAgICBFSU5BX0xJU1RfRlJFRSh3aW5kb3dzLCBhcHApCisg
ICAgICAgIHdpbmRvd19jbG9zZShhcHApOworCiAgICAgZWNvcmVfbWFpbl9sb29wX3F1aXQoKTsK
ICAgICByZXR1cm4gRUlOQV9UUlVFOwogfQogCi1zdGF0aWMgdm9pZCBjbG9zZVdpbmRvdyhFY29y
ZV9FdmFzICplZSkKK3N0YXRpYyB2b2lkIG9uX2Vjb3JlX2V2YXNfZGVsZXRlKEVjb3JlX0V2YXMg
KmVlKQogewotICAgIGVjb3JlX21haW5fbG9vcF9xdWl0KCk7CisgICAgTWluaUJyb3dzZXIgKmFw
cCA9IGJyb3dzZXJfd2luZG93X2ZpbmQoZWUpOworCisgICAgd2luZG93X2Nsb3NlKGFwcCk7Cisg
ICAgd2luZG93cyA9IGVpbmFfbGlzdF9yZW1vdmUod2luZG93cywgYXBwKTsKKworICAgIGlmICgh
d2luZG93cykKKyAgICAgICAgZWNvcmVfbWFpbl9sb29wX3F1aXQoKTsKIH0KIAogc3RhdGljIHZv
aWQgb25fZWNvcmVfZXZhc19yZXNpemUoRWNvcmVfRXZhcyAqZWUpCiB7CisgICAgTWluaUJyb3dz
ZXIgKmFwcDsKICAgICBFdmFzX09iamVjdCAqd2VidmlldzsKICAgICBpbnQgdywgaDsKIAorICAg
IGFwcCA9IGJyb3dzZXJfd2luZG93X2ZpbmQoZWUpOworICAgIGlmICghYXBwKQorICAgICAgICBy
ZXR1cm47CisKICAgICBlY29yZV9ldmFzX2dlb21ldHJ5X2dldChlZSwgTlVMTCwgTlVMTCwgJncs
ICZoKTsKIAogICAgIC8qIFJlc2l6ZSBVUkwgYmFyICovCi0gICAgdXJsX2Jhcl93aWR0aF9zZXQo
YnJvd3Nlci0+dXJsX2Jhciwgdyk7CisgICAgdXJsX2Jhcl93aWR0aF9zZXQoYXBwLT51cmxfYmFy
LCB3KTsKIAotICAgIHdlYnZpZXcgPSBldmFzX29iamVjdF9uYW1lX2ZpbmQoZWNvcmVfZXZhc19n
ZXQoZWUpLCAiYnJvd3NlciIpOwotICAgIGV2YXNfb2JqZWN0X21vdmUod2VidmlldywgMCwgVVJM
X0JBUl9IRUlHSFQpOwotICAgIGV2YXNfb2JqZWN0X3Jlc2l6ZSh3ZWJ2aWV3LCB3LCBoIC0gVVJM
X0JBUl9IRUlHSFQpOworICAgIGV2YXNfb2JqZWN0X21vdmUoYXBwLT53ZWJ2aWV3LCAwLCBVUkxf
QkFSX0hFSUdIVCk7CisgICAgZXZhc19vYmplY3RfcmVzaXplKGFwcC0+d2VidmlldywgdywgaCAt
IFVSTF9CQVJfSEVJR0hUKTsKIH0KIAogc3RhdGljIHZvaWQKQEAgLTEyMSwxMSArMTYxLDE1IEBA
IG9uX2tleV9kb3duKHZvaWQgKmRhdGEsIEV2YXMgKmUsIEV2YXNfT2JqZWN0ICpvYmosIHZvaWQg
KmV2ZW50X2luZm8pCiAgICAgICAgIGluZm8oIlNldCBlbmNvZGluZyAoRjMpIHByZXNzZWQuIE5l
dyBlbmNvZGluZyB0byAlcyIsIGVuY29kaW5nc1tjdXJyZW50RW5jb2RpbmddKTsKICAgICAgICAg
ZXdrX3ZpZXdfc2V0dGluZ19lbmNvZGluZ19jdXN0b21fc2V0KG9iaiwgZW5jb2RpbmdzW2N1cnJl
bnRFbmNvZGluZ10pOwogICAgIH0gZWxzZSBpZiAoIXN0cmNtcChldi0+a2V5LCAiRjUiKSkgewot
ICAgICAgICAgICAgaW5mbygiUmVsb2FkIChGNSkgd2FzIHByZXNzZWQsIHJlbG9hZGluZy5cbiIp
OwotICAgICAgICAgICAgZXdrX3ZpZXdfcmVsb2FkKG9iaik7CisgICAgICAgIGluZm8oIlJlbG9h
ZCAoRjUpIHdhcyBwcmVzc2VkLCByZWxvYWRpbmcuXG4iKTsKKyAgICAgICAgZXdrX3ZpZXdfcmVs
b2FkKG9iaik7CiAgICAgfSBlbHNlIGlmICghc3RyY21wKGV2LT5rZXksICJGNiIpKSB7Ci0gICAg
ICAgICAgICBpbmZvKCJTdG9wIChGNikgd2FzIHByZXNzZWQsIHN0b3AgbG9hZGluZy5cbiIpOwot
ICAgICAgICAgICAgZXdrX3ZpZXdfc3RvcChvYmopOworICAgICAgICBpbmZvKCJTdG9wIChGNikg
d2FzIHByZXNzZWQsIHN0b3AgbG9hZGluZy5cbiIpOworICAgICAgICBld2tfdmlld19zdG9wKG9i
aik7CisgICAgfSBlbHNlIGlmICghc3RyY21wKGV2LT5rZXksICJGOSIpKSB7CisgICAgICAgIGlu
Zm8oIkNyZWF0ZSBuZXcgd2luZG93IChGOSkgd2FzIHByZXNzZWQuXG4iKTsKKyAgICAgICAgTWlu
aUJyb3dzZXIgKmFwcCA9IHdpbmRvd19jcmVhdGUoREVGQVVMVF9VUkwsIEVJTkFfRkFMU0UpOwor
ICAgICAgICB3aW5kb3dzID0gZWluYV9saXN0X2FwcGVuZCh3aW5kb3dzLCBhcHApOwogICAgIH0K
IH0KIApAQCAtMTczLDcgKzIxNyw3IEBAIHN0YXRpYyB2b2lkCiBvbl91cmxfY2hhbmdlZCh2b2lk
ICp1c2VyX2RhdGEsIEV2YXNfT2JqZWN0ICp3ZWJ2aWV3LCB2b2lkICpldmVudF9pbmZvKQogewog
ICAgIE1pbmlCcm93c2VyICphcHAgPSAoTWluaUJyb3dzZXIgKil1c2VyX2RhdGE7Ci0gICAgdXJs
X2Jhcl91cmxfc2V0KGFwcC0+dXJsX2JhciwgZXdrX3ZpZXdfdXJpX2dldChhcHAtPmJyb3dzZXIp
KTsKKyAgICB1cmxfYmFyX3VybF9zZXQoYXBwLT51cmxfYmFyLCBld2tfdmlld191cmlfZ2V0KGFw
cC0+d2VidmlldykpOwogfQogCiBzdGF0aWMgdm9pZApAQCAtMTgyLDcgKzIyNiw3IEBAIG9uX3By
b2dyZXNzKHZvaWQgKnVzZXJfZGF0YSwgRXZhc19PYmplY3QgKndlYnZpZXcsIHZvaWQgKmV2ZW50
X2luZm8pCiAgICAgTWluaUJyb3dzZXIgKmFwcCA9IChNaW5pQnJvd3NlciAqKXVzZXJfZGF0YTsK
ICAgICBkb3VibGUgcHJvZ3Jlc3MgPSAqKGRvdWJsZSAqKWV2ZW50X2luZm87CiAKLSAgICB0aXRs
ZV9zZXQoYXBwLT5lZSwgZXdrX3ZpZXdfdGl0bGVfZ2V0KGFwcC0+YnJvd3NlciksIHByb2dyZXNz
ICogMTAwKTsKKyAgICB0aXRsZV9zZXQoYXBwLT5lZSwgZXdrX3ZpZXdfdGl0bGVfZ2V0KGFwcC0+
d2VidmlldyksIHByb2dyZXNzICogMTAwKTsKIH0KIAogc3RhdGljIHZvaWQKQEAgLTI0OSw1MSAr
MjkzLDYyIEBAIHF1aXQoRWluYV9Cb29sIHN1Y2Nlc3MsIGNvbnN0IGNoYXIgKm1zZykKICAgICBy
ZXR1cm4gRVhJVF9TVUNDRVNTOwogfQogCi1zdGF0aWMgTWluaUJyb3dzZXIgKmJyb3dzZXJDcmVh
dGUoY29uc3QgY2hhciAqdXJsLCBjb25zdCBjaGFyICplbmdpbmUsIEVpbmFfQm9vbCBmcmFtZV9m
bGF0dGVuaW5nKQorc3RhdGljIE1pbmlCcm93c2VyICp3aW5kb3dfY3JlYXRlKGNvbnN0IGNoYXIg
KnVybCwgRWluYV9Cb29sIGZyYW1lX2ZsYXR0ZW5pbmcpCiB7CiAgICAgTWluaUJyb3dzZXIgKmFw
cCA9IG1hbGxvYyhzaXplb2YoTWluaUJyb3dzZXIpKTsKKyAgICBpZiAoIWFwcCkgeworICAgICAg
ICBpbmZvKCJFUlJPUjogY291bGQgbm90IGNyZWF0ZSBNaW5pQnJvd3NlciB3aW5kb3cuXG4iKTsK
KyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQogCi0gICAgYXBwLT5lZSA9IGVjb3JlX2V2YXNf
bmV3KGVuZ2luZSwgMCwgMCwgREVGQVVMVF9XSURUSCwgREVGQVVMVF9IRUlHSFQsIDApOwotICAg
IGlmICghYXBwLT5lZSkKLSAgICAgICAgcmV0dXJuIDA7CisgICAgYXBwLT5lZSA9IGVjb3JlX2V2
YXNfbmV3KGV2YXNfZW5naW5lX25hbWUsIDAsIDAsIERFRkFVTFRfV0lEVEgsIERFRkFVTFRfSEVJ
R0hULCAwKTsKKyAgICBpZiAoIWFwcC0+ZWUpIHsKKyAgICAgICAgaW5mbygiRVJST1I6IGNvdWxk
IG5vdCBjb25zdHJ1Y3QgZWNvcmUtZXZhcy5cbiIpOworICAgICAgICBmcmVlKGFwcCk7CisgICAg
ICAgIHJldHVybiBOVUxMOworICAgIH0KIAogICAgIGVjb3JlX2V2YXNfdGl0bGVfc2V0KGFwcC0+
ZWUsIEFQUF9OQU1FKTsKICAgICBlY29yZV9ldmFzX2NhbGxiYWNrX3Jlc2l6ZV9zZXQoYXBwLT5l
ZSwgb25fZWNvcmVfZXZhc19yZXNpemUpOwogICAgIGVjb3JlX2V2YXNfYm9yZGVybGVzc19zZXQo
YXBwLT5lZSwgMCk7CiAgICAgZWNvcmVfZXZhc19zaG93KGFwcC0+ZWUpOwotICAgIGVjb3JlX2V2
YXNfY2FsbGJhY2tfZGVsZXRlX3JlcXVlc3Rfc2V0KGFwcC0+ZWUsIGNsb3NlV2luZG93KTsKKyAg
ICBlY29yZV9ldmFzX2NhbGxiYWNrX2RlbGV0ZV9yZXF1ZXN0X3NldChhcHAtPmVlLCBvbl9lY29y
ZV9ldmFzX2RlbGV0ZSk7CiAKICAgICBhcHAtPmV2YXMgPSBlY29yZV9ldmFzX2dldChhcHAtPmVl
KTsKKyAgICBpZiAoIWFwcC0+ZXZhcykgeworICAgICAgICBpbmZvKCJFUlJPUjogY291bGQgbm90
IGdldCBldmFzIGZyb20gZXZhcy1lY29yZS5cbiIpOworICAgICAgICBmcmVlKGFwcCk7CisgICAg
ICAgIHJldHVybiBOVUxMOworICAgIH0KIAogICAgIC8qIENyZWF0ZSB3ZWJ2aWV3ICovCi0gICAg
YXBwLT5icm93c2VyID0gZXdrX3ZpZXdfYWRkKGFwcC0+ZXZhcyk7Ci0gICAgZXdrX3ZpZXdfdGhl
bWVfc2V0KGFwcC0+YnJvd3NlciwgVEhFTUVfRElSIi9kZWZhdWx0LmVkaiIpOwotICAgIGV3a19z
ZXR0aW5nc19lbmFibGVfZnJhbWVfZmxhdHRlbmluZ19zZXQoZXdrX3ZpZXdfc2V0dGluZ3NfZ2V0
KGFwcC0+YnJvd3NlciksIGZyYW1lX2ZsYXR0ZW5pbmcpOwotICAgIGV2YXNfb2JqZWN0X25hbWVf
c2V0KGFwcC0+YnJvd3NlciwgImJyb3dzZXIiKTsKKyAgICBhcHAtPndlYnZpZXcgPSBld2tfdmll
d19hZGQoYXBwLT5ldmFzKTsKKyAgICBld2tfdmlld190aGVtZV9zZXQoYXBwLT53ZWJ2aWV3LCBU
SEVNRV9ESVIiL2RlZmF1bHQuZWRqIik7CisgICAgZXdrX3NldHRpbmdzX2VuYWJsZV9mcmFtZV9m
bGF0dGVuaW5nX3NldChld2tfdmlld19zZXR0aW5nc19nZXQoYXBwLT53ZWJ2aWV3KSwgZnJhbWVf
ZmxhdHRlbmluZyk7CiAKLSAgICBFd2tfU2V0dGluZ3MgKnNldHRpbmdzID0gZXdrX3ZpZXdfc2V0
dGluZ3NfZ2V0KGFwcC0+YnJvd3Nlcik7CisgICAgRXdrX1NldHRpbmdzICpzZXR0aW5ncyA9IGV3
a192aWV3X3NldHRpbmdzX2dldChhcHAtPndlYnZpZXcpOwogICAgIGV3a19zZXR0aW5nc19maWxl
X2FjY2Vzc19mcm9tX2ZpbGVfdXJsc19hbGxvd2VkX3NldChzZXR0aW5ncywgRUlOQV9UUlVFKTsK
IAotICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2FkZChhcHAtPmJyb3dzZXIsICJkb3du
bG9hZCxmYWlsZWQiLCBvbl9kb3dubG9hZF9mYWlsZWQsIGFwcCk7Ci0gICAgZXZhc19vYmplY3Rf
c21hcnRfY2FsbGJhY2tfYWRkKGFwcC0+YnJvd3NlciwgImRvd25sb2FkLGZpbmlzaGVkIiwgb25f
ZG93bmxvYWRfZmluaXNoZWQsIGFwcCk7Ci0gICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tf
YWRkKGFwcC0+YnJvd3NlciwgImRvd25sb2FkLHJlcXVlc3QiLCBvbl9kb3dubG9hZF9yZXF1ZXN0
LCBhcHApOwotICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2FkZChhcHAtPmJyb3dzZXIs
ICJsb2FkLGVycm9yIiwgb25fZXJyb3IsIGFwcCk7Ci0gICAgZXZhc19vYmplY3Rfc21hcnRfY2Fs
bGJhY2tfYWRkKGFwcC0+YnJvd3NlciwgImxvYWQscHJvZ3Jlc3MiLCBvbl9wcm9ncmVzcywgYXBw
KTsKLSAgICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFja19hZGQoYXBwLT5icm93c2VyLCAidGl0
bGUsY2hhbmdlZCIsIG9uX3RpdGxlX2NoYW5nZWQsIGFwcCk7Ci0gICAgZXZhc19vYmplY3Rfc21h
cnRfY2FsbGJhY2tfYWRkKGFwcC0+YnJvd3NlciwgInVyaSxjaGFuZ2VkIiwgb25fdXJsX2NoYW5n
ZWQsIGFwcCk7CisgICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tfYWRkKGFwcC0+d2Vidmll
dywgImRvd25sb2FkLGZhaWxlZCIsIG9uX2Rvd25sb2FkX2ZhaWxlZCwgYXBwKTsKKyAgICBldmFz
X29iamVjdF9zbWFydF9jYWxsYmFja19hZGQoYXBwLT53ZWJ2aWV3LCAiZG93bmxvYWQsZmluaXNo
ZWQiLCBvbl9kb3dubG9hZF9maW5pc2hlZCwgYXBwKTsKKyAgICBldmFzX29iamVjdF9zbWFydF9j
YWxsYmFja19hZGQoYXBwLT53ZWJ2aWV3LCAiZG93bmxvYWQscmVxdWVzdCIsIG9uX2Rvd25sb2Fk
X3JlcXVlc3QsIGFwcCk7CisgICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tfYWRkKGFwcC0+
d2VidmlldywgImxvYWQsZXJyb3IiLCBvbl9lcnJvciwgYXBwKTsKKyAgICBldmFzX29iamVjdF9z
bWFydF9jYWxsYmFja19hZGQoYXBwLT53ZWJ2aWV3LCAibG9hZCxwcm9ncmVzcyIsIG9uX3Byb2dy
ZXNzLCBhcHApOworICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2FkZChhcHAtPndlYnZp
ZXcsICJ0aXRsZSxjaGFuZ2VkIiwgb25fdGl0bGVfY2hhbmdlZCwgYXBwKTsKKyAgICBldmFzX29i
amVjdF9zbWFydF9jYWxsYmFja19hZGQoYXBwLT53ZWJ2aWV3LCAidXJpLGNoYW5nZWQiLCBvbl91
cmxfY2hhbmdlZCwgYXBwKTsKIAotICAgIGV2YXNfb2JqZWN0X2V2ZW50X2NhbGxiYWNrX2FkZChh
cHAtPmJyb3dzZXIsIEVWQVNfQ0FMTEJBQ0tfS0VZX0RPV04sIG9uX2tleV9kb3duLCBhcHApOwot
ICAgIGV2YXNfb2JqZWN0X2V2ZW50X2NhbGxiYWNrX2FkZChhcHAtPmJyb3dzZXIsIEVWQVNfQ0FM
TEJBQ0tfTU9VU0VfRE9XTiwgb25fbW91c2VfZG93biwgYXBwKTsKKyAgICBldmFzX29iamVjdF9l
dmVudF9jYWxsYmFja19hZGQoYXBwLT53ZWJ2aWV3LCBFVkFTX0NBTExCQUNLX0tFWV9ET1dOLCBv
bl9rZXlfZG93biwgYXBwKTsKKyAgICBldmFzX29iamVjdF9ldmVudF9jYWxsYmFja19hZGQoYXBw
LT53ZWJ2aWV3LCBFVkFTX0NBTExCQUNLX01PVVNFX0RPV04sIG9uX21vdXNlX2Rvd24sIGFwcCk7
CiAKLSAgICBldmFzX29iamVjdF9zaXplX2hpbnRfd2VpZ2h0X3NldChhcHAtPmJyb3dzZXIsIEVW
QVNfSElOVF9FWFBBTkQsIEVWQVNfSElOVF9FWFBBTkQpOwotICAgIGV2YXNfb2JqZWN0X21vdmUo
YXBwLT5icm93c2VyLCAwLCBVUkxfQkFSX0hFSUdIVCk7Ci0gICAgZXZhc19vYmplY3RfcmVzaXpl
KGFwcC0+YnJvd3NlciwgREVGQVVMVF9XSURUSCwgREVGQVVMVF9IRUlHSFQgLSBVUkxfQkFSX0hF
SUdIVCk7Ci0gICAgZXZhc19vYmplY3Rfc2hvdyhhcHAtPmJyb3dzZXIpOwotICAgIGV2YXNfb2Jq
ZWN0X2ZvY3VzX3NldChhcHAtPmJyb3dzZXIsIEVJTkFfVFJVRSk7CisgICAgZXZhc19vYmplY3Rf
c2l6ZV9oaW50X3dlaWdodF9zZXQoYXBwLT53ZWJ2aWV3LCBFVkFTX0hJTlRfRVhQQU5ELCBFVkFT
X0hJTlRfRVhQQU5EKTsKKyAgICBldmFzX29iamVjdF9tb3ZlKGFwcC0+d2VidmlldywgMCwgVVJM
X0JBUl9IRUlHSFQpOworICAgIGV2YXNfb2JqZWN0X3Jlc2l6ZShhcHAtPndlYnZpZXcsIERFRkFV
TFRfV0lEVEgsIERFRkFVTFRfSEVJR0hUIC0gVVJMX0JBUl9IRUlHSFQpOworICAgIGV2YXNfb2Jq
ZWN0X3Nob3coYXBwLT53ZWJ2aWV3KTsKKyAgICBldmFzX29iamVjdF9mb2N1c19zZXQoYXBwLT53
ZWJ2aWV3LCBFSU5BX1RSVUUpOwogCi0gICAgYXBwLT51cmxfYmFyID0gdXJsX2Jhcl9hZGQoYXBw
LT5icm93c2VyLCBERUZBVUxUX1dJRFRIKTsKKyAgICBhcHAtPnVybF9iYXIgPSB1cmxfYmFyX2Fk
ZChhcHAtPndlYnZpZXcsIERFRkFVTFRfV0lEVEgpOwogCi0gICAgZXdrX3ZpZXdfdXJpX3NldChh
cHAtPmJyb3dzZXIsIHVybCk7CisgICAgZXdrX3ZpZXdfdXJpX3NldChhcHAtPndlYnZpZXcsIHVy
bCk7CiAKICAgICByZXR1cm4gYXBwOwogfQpAQCAtMzAxLDEzICszNTYsMTMgQEAgc3RhdGljIE1p
bmlCcm93c2VyICpicm93c2VyQ3JlYXRlKGNvbnN0IGNoYXIgKnVybCwgY29uc3QgY2hhciAqZW5n
aW5lLCBFaW5hX0Jvb2wKIGludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCiB7CiAgICAg
aW50IGFyZ3MgPSAxOwotICAgIGNoYXIgKmVuZ2luZSA9IE5VTEw7CiAgICAgdW5zaWduZWQgY2hh
ciBxdWl0T3B0aW9uID0gMDsKKyAgICBNaW5pQnJvd3NlciAqYXBwOwogCiAgICAgRWluYV9Cb29s
IGZyYW1lX2ZsYXR0ZW5pbmcgPSBFSU5BX0ZBTFNFOwogCiAgICAgRWNvcmVfR2V0b3B0X1ZhbHVl
IHZhbHVlc1tdID0gewotICAgICAgICBFQ09SRV9HRVRPUFRfVkFMVUVfU1RSKGVuZ2luZSksCisg
ICAgICAgIEVDT1JFX0dFVE9QVF9WQUxVRV9TVFIoZXZhc19lbmdpbmVfbmFtZSksCiAgICAgICAg
IEVDT1JFX0dFVE9QVF9WQUxVRV9CT09MKHF1aXRPcHRpb24pLAogICAgICAgICBFQ09SRV9HRVRP
UFRfVkFMVUVfQk9PTChmcmFtZV9mbGF0dGVuaW5nKSwKICAgICAgICAgRUNPUkVfR0VUT1BUX1ZB
TFVFX0JPT0wocXVpdE9wdGlvbiksCkBAIC0zMzAsMjIgKzM4NSwyMSBAQCBpbnQgbWFpbihpbnQg
YXJnYywgY2hhciAqYXJndltdKQogCiAgICAgaWYgKGFyZ3MgPCBhcmdjKSB7CiAgICAgICAgIGNo
YXIgKnVybCA9IHVybF9mcm9tX3VzZXJfaW5wdXQoYXJndlthcmdzXSk7Ci0gICAgICAgIGJyb3dz
ZXIgPSBicm93c2VyQ3JlYXRlKHVybCwgZW5naW5lLCBmcmFtZV9mbGF0dGVuaW5nKTsKKyAgICAg
ICAgYXBwID0gd2luZG93X2NyZWF0ZSh1cmwsIGZyYW1lX2ZsYXR0ZW5pbmcpOwogICAgICAgICBm
cmVlKHVybCk7CiAgICAgfSBlbHNlCi0gICAgICAgIGJyb3dzZXIgPSBicm93c2VyQ3JlYXRlKERF
RkFVTFRfVVJMLCBlbmdpbmUsIGZyYW1lX2ZsYXR0ZW5pbmcpOworICAgICAgICBhcHAgPSB3aW5k
b3dfY3JlYXRlKERFRkFVTFRfVVJMLCBmcmFtZV9mbGF0dGVuaW5nKTsKKworICAgIGlmICghYXBw
KQorICAgICAgICByZXR1cm4gcXVpdChFSU5BX0ZBTFNFLCAiRVJST1I6IGNvdWxkIG5vdCBjcmVh
dGUgYnJvd3NlciB3aW5kb3cuXG4iKTsKIAotICAgIGlmICghYnJvd3NlcikKLSAgICAgICAgcmV0
dXJuIHF1aXQoRUlOQV9GQUxTRSwgIkVSUk9SOiBjb3VsZCBub3QgY3JlYXRlIGJyb3dzZXIuXG4i
KTsKKyAgICB3aW5kb3dzID0gZWluYV9saXN0X2FwcGVuZCh3aW5kb3dzLCBhcHApOwogCiAgICAg
RWNvcmVfRXZlbnRfSGFuZGxlciAqaGFuZGxlID0gZWNvcmVfZXZlbnRfaGFuZGxlcl9hZGQoRUNP
UkVfRVZFTlRfU0lHTkFMX0VYSVQsIG1haW5fc2lnbmFsX2V4aXQsIDApOwogCiAgICAgZWNvcmVf
bWFpbl9sb29wX2JlZ2luKCk7CiAKLSAgICB1cmxfYmFyX2RlbChicm93c2VyLT51cmxfYmFyKTsK
ICAgICBlY29yZV9ldmVudF9oYW5kbGVyX2RlbChoYW5kbGUpOwotICAgIGVjb3JlX2V2YXNfZnJl
ZShicm93c2VyLT5lZSk7Ci0gICAgZnJlZShicm93c2VyKTsKIAogICAgIHJldHVybiBxdWl0KEVJ
TkFfVFJVRSwgTlVMTCk7CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>167510</attachid>
            <date>2012-10-07 22:51:45 -0700</date>
            <delta_ts>2012-10-08 00:40:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-97884-20121008145048.patch</filename>
            <type>text/plain</type>
            <size>12271</size>
            <attacher name="Jinwoo Song">jinwoo7.song</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMwNjE0CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYWE3ZGJlNjJjOTYxZGE5OThhZTdkOTVhNWEyYTg4OGI2
ZmJjMDU3ZS4uOTMzMzkwMTRiZjMyNmU2ODVmNmY5MzA1YTIzNWIxNzkwYWUyY2U0YSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2
IEBACisyMDEyLTEwLTA3ICBKaW53b28gU29uZyAgPGppbndvbzcuc29uZ0BzYW1zdW5nLmNvbT4K
KworICAgICAgICBbRUZMXVtXSzJdIFN1cHBvcnQgbXVsdGlwbGUgd2luZG93IGNyZWF0aW9uIGZv
ciBNaW5pQnJvd3NlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9OTc4ODQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBJbXBsZW1lbnQgdGhlIG11bHRpcGxlIHdpbmRvdyBjcmVhdGlvbiBmb3IgTWluaUJyb3dz
ZXIgYW5kIGJpbmQgdGhlICdGOScga2V5IGZvciBvcGVuaW5nIGEgbmV3IHdpbmRvdy4KKyAgICAg
ICAgQWxzbywgcmVmYWN0b3JlZCBNaW5pQnJvd3NlciBjb2RlcyBhY2NvcmRpbmcgdG8gRUZMIGNv
ZGluZyBzdHlsZS4KKworICAgICAgICAqIE1pbmlCcm93c2VyL2VmbC9tYWluLmM6CisgICAgICAg
IChfQnJvd3Nlcl9XaW5kb3cpOgorICAgICAgICAod2luZG93X2ZyZWUpOgorICAgICAgICAobWFp
bl9zaWduYWxfZXhpdCk6CisgICAgICAgIChvbl9lY29yZV9ldmFzX2RlbGV0ZSk6CisgICAgICAg
IChvbl9lY29yZV9ldmFzX3Jlc2l6ZSk6CisgICAgICAgIChvbl9rZXlfZG93bik6CisgICAgICAg
IChvbl90aXRsZV9jaGFuZ2VkKToKKyAgICAgICAgKG9uX3VybF9jaGFuZ2VkKToKKyAgICAgICAg
KG9uX3Byb2dyZXNzKToKKyAgICAgICAgKHdpbmRvd19jcmVhdGUpOgorICAgICAgICAobWFpbik6
CisKIDIwMTItMTAtMDcgIENhaW8gTWFyY2VsbyBkZSBPbGl2ZWlyYSBGaWxobyAgPGNhaW8ub2xp
dmVpcmFAb3BlbmJvc3NhLm9yZz4KIAogICAgICAgICBSZW5hbWUgZmlyc3Qvc2Vjb25kIHRvIGtl
eS92YWx1ZSBpbiBIYXNoTWFwIGl0ZXJhdG9ycwpkaWZmIC0tZ2l0IGEvVG9vbHMvTWluaUJyb3dz
ZXIvZWZsL21haW4uYyBiL1Rvb2xzL01pbmlCcm93c2VyL2VmbC9tYWluLmMKaW5kZXggYjBkNDUy
MDg2YjI0NGZiODhkNmY5NzM1MTUwOWVlYjQ1M2Q0MGY2Mi4uODMyNjE1NGUyYTVjZmJiZTFhYjBl
OGIzOGU1NWIxNDk1OWQzNDY2MyAxMDA2NDQKLS0tIGEvVG9vbHMvTWluaUJyb3dzZXIvZWZsL21h
aW4uYworKysgYi9Ub29scy9NaW5pQnJvd3Nlci9lZmwvbWFpbi5jCkBAIC0zNywxNSArMzcsMTUg
QEAgc3RhdGljIGNvbnN0IGNoYXIgQVBQX05BTUVbXSA9ICJFRkwgTWluaUJyb3dzZXIiOwogICAg
IH0gd2hpbGUgKDApCiAKIHN0YXRpYyBpbnQgdmVyYm9zZSA9IDE7CitzdGF0aWMgRWluYV9MaXN0
ICp3aW5kb3dzID0gTlVMTDsKK3N0YXRpYyBjaGFyICpldmFzX2VuZ2luZV9uYW1lID0gTlVMTDsK
IAotdHlwZWRlZiBzdHJ1Y3QgX01pbmlCcm93c2VyIHsKK3R5cGVkZWYgc3RydWN0IF9Ccm93c2Vy
X1dpbmRvdyB7CiAgICAgRWNvcmVfRXZhcyAqZWU7CiAgICAgRXZhcyAqZXZhczsKLSAgICBFdmFz
X09iamVjdCAqYnJvd3NlcjsKKyAgICBFdmFzX09iamVjdCAqd2VidmlldzsKICAgICBVcmxfQmFy
ICp1cmxfYmFyOwotfSBNaW5pQnJvd3NlcjsKLQotTWluaUJyb3dzZXIgKmJyb3dzZXI7Cit9IEJy
b3dzZXJfV2luZG93OwogCiBzdGF0aWMgY29uc3QgRWNvcmVfR2V0b3B0IG9wdGlvbnMgPSB7CiAg
ICAgIk1pbmlCcm93c2VyIiwKQEAgLTcyLDMwICs3Miw2OSBAQCBzdGF0aWMgY29uc3QgRWNvcmVf
R2V0b3B0IG9wdGlvbnMgPSB7CiAgICAgfQogfTsKIAorc3RhdGljIEJyb3dzZXJfV2luZG93ICp3
aW5kb3dfY3JlYXRlKGNvbnN0IGNoYXIgKnVybCwgRWluYV9Cb29sIGZyYW1lX2ZsYXR0ZW5pbmcp
OworCitzdGF0aWMgQnJvd3Nlcl9XaW5kb3cgKmJyb3dzZXJfd2luZG93X2ZpbmQoRWNvcmVfRXZh
cyAqZWUpCit7CisgICAgRWluYV9MaXN0ICpsOworICAgIHZvaWQgKmRhdGE7CisKKyAgICBpZiAo
IWVlKQorICAgICAgICByZXR1cm4gTlVMTDsKKworICAgIEVJTkFfTElTVF9GT1JFQUNIKHdpbmRv
d3MsIGwsIGRhdGEpIHsKKyAgICAgICAgQnJvd3Nlcl9XaW5kb3cgKndpbmRvdyA9IChCcm93c2Vy
X1dpbmRvdyAqKWRhdGE7CisgICAgICAgIGlmICh3aW5kb3ctPmVlID09IGVlKQorICAgICAgICAg
ICAgcmV0dXJuIHdpbmRvdzsKKyAgICB9CisgICAgcmV0dXJuIE5VTEw7Cit9CisKK3N0YXRpYyB2
b2lkIHdpbmRvd19mcmVlKEJyb3dzZXJfV2luZG93ICp3aW5kb3cpCit7CisgICAgdXJsX2Jhcl9k
ZWwod2luZG93LT51cmxfYmFyKTsKKyAgICBlY29yZV9ldmFzX2ZyZWUod2luZG93LT5lZSk7Cisg
ICAgZnJlZSh3aW5kb3cpOworfQorCiBzdGF0aWMgRWluYV9Cb29sIG1haW5fc2lnbmFsX2V4aXQo
dm9pZCAqZGF0YSwgaW50IGV2X3R5cGUsIHZvaWQgKmV2KQogeworICAgIEJyb3dzZXJfV2luZG93
ICp3aW5kb3c7CisgICAgRUlOQV9MSVNUX0ZSRUUod2luZG93cywgd2luZG93KQorICAgICAgICB3
aW5kb3dfZnJlZSh3aW5kb3cpOworCiAgICAgZWNvcmVfbWFpbl9sb29wX3F1aXQoKTsKICAgICBy
ZXR1cm4gRUlOQV9UUlVFOwogfQogCi1zdGF0aWMgdm9pZCBjbG9zZVdpbmRvdyhFY29yZV9FdmFz
ICplZSkKK3N0YXRpYyB2b2lkIG9uX2Vjb3JlX2V2YXNfZGVsZXRlKEVjb3JlX0V2YXMgKmVlKQog
ewotICAgIGVjb3JlX21haW5fbG9vcF9xdWl0KCk7CisgICAgQnJvd3Nlcl9XaW5kb3cgKndpbmRv
dyA9IGJyb3dzZXJfd2luZG93X2ZpbmQoZWUpOworCisgICAgd2luZG93X2ZyZWUod2luZG93KTsK
KyAgICB3aW5kb3dzID0gZWluYV9saXN0X3JlbW92ZSh3aW5kb3dzLCB3aW5kb3cpOworCisgICAg
aWYgKCF3aW5kb3dzKQorICAgICAgICBlY29yZV9tYWluX2xvb3BfcXVpdCgpOwogfQogCiBzdGF0
aWMgdm9pZCBvbl9lY29yZV9ldmFzX3Jlc2l6ZShFY29yZV9FdmFzICplZSkKIHsKKyAgICBCcm93
c2VyX1dpbmRvdyAqd2luZG93OwogICAgIEV2YXNfT2JqZWN0ICp3ZWJ2aWV3OwogICAgIGludCB3
LCBoOwogCisgICAgd2luZG93ID0gYnJvd3Nlcl93aW5kb3dfZmluZChlZSk7CisgICAgaWYgKCF3
aW5kb3cpCisgICAgICAgIHJldHVybjsKKwogICAgIGVjb3JlX2V2YXNfZ2VvbWV0cnlfZ2V0KGVl
LCBOVUxMLCBOVUxMLCAmdywgJmgpOwogCiAgICAgLyogUmVzaXplIFVSTCBiYXIgKi8KLSAgICB1
cmxfYmFyX3dpZHRoX3NldChicm93c2VyLT51cmxfYmFyLCB3KTsKKyAgICB1cmxfYmFyX3dpZHRo
X3NldCh3aW5kb3ctPnVybF9iYXIsIHcpOwogCi0gICAgd2VidmlldyA9IGV2YXNfb2JqZWN0X25h
bWVfZmluZChlY29yZV9ldmFzX2dldChlZSksICJicm93c2VyIik7Ci0gICAgZXZhc19vYmplY3Rf
bW92ZSh3ZWJ2aWV3LCAwLCBVUkxfQkFSX0hFSUdIVCk7Ci0gICAgZXZhc19vYmplY3RfcmVzaXpl
KHdlYnZpZXcsIHcsIGggLSBVUkxfQkFSX0hFSUdIVCk7CisgICAgZXZhc19vYmplY3RfbW92ZSh3
aW5kb3ctPndlYnZpZXcsIDAsIFVSTF9CQVJfSEVJR0hUKTsKKyAgICBldmFzX29iamVjdF9yZXNp
emUod2luZG93LT53ZWJ2aWV3LCB3LCBoIC0gVVJMX0JBUl9IRUlHSFQpOwogfQogCiBzdGF0aWMg
dm9pZApAQCAtMTIxLDExICsxNjAsMTUgQEAgb25fa2V5X2Rvd24odm9pZCAqZGF0YSwgRXZhcyAq
ZSwgRXZhc19PYmplY3QgKm9iaiwgdm9pZCAqZXZlbnRfaW5mbykKICAgICAgICAgaW5mbygiU2V0
IGVuY29kaW5nIChGMykgcHJlc3NlZC4gTmV3IGVuY29kaW5nIHRvICVzIiwgZW5jb2RpbmdzW2N1
cnJlbnRFbmNvZGluZ10pOwogICAgICAgICBld2tfdmlld19zZXR0aW5nX2VuY29kaW5nX2N1c3Rv
bV9zZXQob2JqLCBlbmNvZGluZ3NbY3VycmVudEVuY29kaW5nXSk7CiAgICAgfSBlbHNlIGlmICgh
c3RyY21wKGV2LT5rZXksICJGNSIpKSB7Ci0gICAgICAgICAgICBpbmZvKCJSZWxvYWQgKEY1KSB3
YXMgcHJlc3NlZCwgcmVsb2FkaW5nLlxuIik7Ci0gICAgICAgICAgICBld2tfdmlld19yZWxvYWQo
b2JqKTsKKyAgICAgICAgaW5mbygiUmVsb2FkIChGNSkgd2FzIHByZXNzZWQsIHJlbG9hZGluZy5c
biIpOworICAgICAgICBld2tfdmlld19yZWxvYWQob2JqKTsKICAgICB9IGVsc2UgaWYgKCFzdHJj
bXAoZXYtPmtleSwgIkY2IikpIHsKLSAgICAgICAgICAgIGluZm8oIlN0b3AgKEY2KSB3YXMgcHJl
c3NlZCwgc3RvcCBsb2FkaW5nLlxuIik7Ci0gICAgICAgICAgICBld2tfdmlld19zdG9wKG9iaik7
CisgICAgICAgIGluZm8oIlN0b3AgKEY2KSB3YXMgcHJlc3NlZCwgc3RvcCBsb2FkaW5nLlxuIik7
CisgICAgICAgIGV3a192aWV3X3N0b3Aob2JqKTsKKyAgICB9IGVsc2UgaWYgKCFzdHJjbXAoZXYt
PmtleSwgIkY5IikpIHsKKyAgICAgICAgaW5mbygiQ3JlYXRlIG5ldyB3aW5kb3cgKEY5KSB3YXMg
cHJlc3NlZC5cbiIpOworICAgICAgICBCcm93c2VyX1dpbmRvdyAqd2luZG93ID0gd2luZG93X2Ny
ZWF0ZShERUZBVUxUX1VSTCwgRUlOQV9GQUxTRSk7CisgICAgICAgIHdpbmRvd3MgPSBlaW5hX2xp
c3RfYXBwZW5kKHdpbmRvd3MsIHdpbmRvdyk7CiAgICAgfQogfQogCkBAIC0xNjMsMjYgKzIwNiwy
NiBAQCB0aXRsZV9zZXQoRWNvcmVfRXZhcyAqZWUsIGNvbnN0IGNoYXIgKnRpdGxlLCBpbnQgcHJv
Z3Jlc3MpCiBzdGF0aWMgdm9pZAogb25fdGl0bGVfY2hhbmdlZCh2b2lkICp1c2VyX2RhdGEsIEV2
YXNfT2JqZWN0ICp3ZWJ2aWV3LCB2b2lkICpldmVudF9pbmZvKQogewotICAgIE1pbmlCcm93c2Vy
ICphcHAgPSAoTWluaUJyb3dzZXIgKil1c2VyX2RhdGE7CisgICAgQnJvd3Nlcl9XaW5kb3cgKndp
bmRvdyA9IChCcm93c2VyX1dpbmRvdyAqKXVzZXJfZGF0YTsKICAgICBjb25zdCBjaGFyICp0aXRs
ZSA9IChjb25zdCBjaGFyICopZXZlbnRfaW5mbzsKIAotICAgIHRpdGxlX3NldChhcHAtPmVlLCB0
aXRsZSwgMTAwKTsKKyAgICB0aXRsZV9zZXQod2luZG93LT5lZSwgdGl0bGUsIDEwMCk7CiB9CiAK
IHN0YXRpYyB2b2lkCiBvbl91cmxfY2hhbmdlZCh2b2lkICp1c2VyX2RhdGEsIEV2YXNfT2JqZWN0
ICp3ZWJ2aWV3LCB2b2lkICpldmVudF9pbmZvKQogewotICAgIE1pbmlCcm93c2VyICphcHAgPSAo
TWluaUJyb3dzZXIgKil1c2VyX2RhdGE7Ci0gICAgdXJsX2Jhcl91cmxfc2V0KGFwcC0+dXJsX2Jh
ciwgZXdrX3ZpZXdfdXJpX2dldChhcHAtPmJyb3dzZXIpKTsKKyAgICBCcm93c2VyX1dpbmRvdyAq
d2luZG93ID0gKEJyb3dzZXJfV2luZG93ICopdXNlcl9kYXRhOworICAgIHVybF9iYXJfdXJsX3Nl
dCh3aW5kb3ctPnVybF9iYXIsIGV3a192aWV3X3VyaV9nZXQod2luZG93LT53ZWJ2aWV3KSk7CiB9
CiAKIHN0YXRpYyB2b2lkCiBvbl9wcm9ncmVzcyh2b2lkICp1c2VyX2RhdGEsIEV2YXNfT2JqZWN0
ICp3ZWJ2aWV3LCB2b2lkICpldmVudF9pbmZvKQogewotICAgIE1pbmlCcm93c2VyICphcHAgPSAo
TWluaUJyb3dzZXIgKil1c2VyX2RhdGE7CisgICAgQnJvd3Nlcl9XaW5kb3cgKndpbmRvdyA9IChC
cm93c2VyX1dpbmRvdyAqKXVzZXJfZGF0YTsKICAgICBkb3VibGUgcHJvZ3Jlc3MgPSAqKGRvdWJs
ZSAqKWV2ZW50X2luZm87CiAKLSAgICB0aXRsZV9zZXQoYXBwLT5lZSwgZXdrX3ZpZXdfdGl0bGVf
Z2V0KGFwcC0+YnJvd3NlciksIHByb2dyZXNzICogMTAwKTsKKyAgICB0aXRsZV9zZXQod2luZG93
LT5lZSwgZXdrX3ZpZXdfdGl0bGVfZ2V0KHdpbmRvdy0+d2VidmlldyksIHByb2dyZXNzICogMTAw
KTsKIH0KIAogc3RhdGljIHZvaWQKQEAgLTI0OSw2NSArMjkyLDc2IEBAIHF1aXQoRWluYV9Cb29s
IHN1Y2Nlc3MsIGNvbnN0IGNoYXIgKm1zZykKICAgICByZXR1cm4gRVhJVF9TVUNDRVNTOwogfQog
Ci1zdGF0aWMgTWluaUJyb3dzZXIgKmJyb3dzZXJDcmVhdGUoY29uc3QgY2hhciAqdXJsLCBjb25z
dCBjaGFyICplbmdpbmUsIEVpbmFfQm9vbCBmcmFtZV9mbGF0dGVuaW5nKQorc3RhdGljIEJyb3dz
ZXJfV2luZG93ICp3aW5kb3dfY3JlYXRlKGNvbnN0IGNoYXIgKnVybCwgRWluYV9Cb29sIGZyYW1l
X2ZsYXR0ZW5pbmcpCiB7Ci0gICAgTWluaUJyb3dzZXIgKmFwcCA9IG1hbGxvYyhzaXplb2YoTWlu
aUJyb3dzZXIpKTsKLQotICAgIGFwcC0+ZWUgPSBlY29yZV9ldmFzX25ldyhlbmdpbmUsIDAsIDAs
IERFRkFVTFRfV0lEVEgsIERFRkFVTFRfSEVJR0hULCAwKTsKLSAgICBpZiAoIWFwcC0+ZWUpCi0g
ICAgICAgIHJldHVybiAwOworICAgIEJyb3dzZXJfV2luZG93ICp3aW5kb3cgPSBtYWxsb2Moc2l6
ZW9mKEJyb3dzZXJfV2luZG93KSk7CisgICAgaWYgKCF3aW5kb3cpIHsKKyAgICAgICAgaW5mbygi
RVJST1I6IGNvdWxkIG5vdCBjcmVhdGUgYnJvd3NlciB3aW5kb3cuXG4iKTsKKyAgICAgICAgcmV0
dXJuIE5VTEw7CisgICAgfQogCi0gICAgZWNvcmVfZXZhc190aXRsZV9zZXQoYXBwLT5lZSwgQVBQ
X05BTUUpOwotICAgIGVjb3JlX2V2YXNfY2FsbGJhY2tfcmVzaXplX3NldChhcHAtPmVlLCBvbl9l
Y29yZV9ldmFzX3Jlc2l6ZSk7Ci0gICAgZWNvcmVfZXZhc19ib3JkZXJsZXNzX3NldChhcHAtPmVl
LCAwKTsKLSAgICBlY29yZV9ldmFzX3Nob3coYXBwLT5lZSk7Ci0gICAgZWNvcmVfZXZhc19jYWxs
YmFja19kZWxldGVfcmVxdWVzdF9zZXQoYXBwLT5lZSwgY2xvc2VXaW5kb3cpOworICAgIHdpbmRv
dy0+ZWUgPSBlY29yZV9ldmFzX25ldyhldmFzX2VuZ2luZV9uYW1lLCAwLCAwLCBERUZBVUxUX1dJ
RFRILCBERUZBVUxUX0hFSUdIVCwgMCk7CisgICAgaWYgKCF3aW5kb3ctPmVlKSB7CisgICAgICAg
IGluZm8oIkVSUk9SOiBjb3VsZCBub3QgY29uc3RydWN0IGVjb3JlLWV2YXMuXG4iKTsKKyAgICAg
ICAgZnJlZSh3aW5kb3cpOworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CiAKLSAgICBhcHAt
PmV2YXMgPSBlY29yZV9ldmFzX2dldChhcHAtPmVlKTsKKyAgICBlY29yZV9ldmFzX3RpdGxlX3Nl
dCh3aW5kb3ctPmVlLCBBUFBfTkFNRSk7CisgICAgZWNvcmVfZXZhc19jYWxsYmFja19yZXNpemVf
c2V0KHdpbmRvdy0+ZWUsIG9uX2Vjb3JlX2V2YXNfcmVzaXplKTsKKyAgICBlY29yZV9ldmFzX2Jv
cmRlcmxlc3Nfc2V0KHdpbmRvdy0+ZWUsIDApOworICAgIGVjb3JlX2V2YXNfc2hvdyh3aW5kb3ct
PmVlKTsKKyAgICBlY29yZV9ldmFzX2NhbGxiYWNrX2RlbGV0ZV9yZXF1ZXN0X3NldCh3aW5kb3ct
PmVlLCBvbl9lY29yZV9ldmFzX2RlbGV0ZSk7CisKKyAgICB3aW5kb3ctPmV2YXMgPSBlY29yZV9l
dmFzX2dldCh3aW5kb3ctPmVlKTsKKyAgICBpZiAoIXdpbmRvdy0+ZXZhcykgeworICAgICAgICBp
bmZvKCJFUlJPUjogY291bGQgbm90IGdldCBldmFzIGZyb20gZXZhcy1lY29yZS5cbiIpOworICAg
ICAgICBmcmVlKHdpbmRvdyk7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KIAogICAgIC8q
IENyZWF0ZSB3ZWJ2aWV3ICovCi0gICAgYXBwLT5icm93c2VyID0gZXdrX3ZpZXdfYWRkKGFwcC0+
ZXZhcyk7Ci0gICAgZXdrX3ZpZXdfdGhlbWVfc2V0KGFwcC0+YnJvd3NlciwgVEhFTUVfRElSIi9k
ZWZhdWx0LmVkaiIpOwotICAgIGV3a19zZXR0aW5nc19lbmFibGVfZnJhbWVfZmxhdHRlbmluZ19z
ZXQoZXdrX3ZpZXdfc2V0dGluZ3NfZ2V0KGFwcC0+YnJvd3NlciksIGZyYW1lX2ZsYXR0ZW5pbmcp
OwotICAgIGV2YXNfb2JqZWN0X25hbWVfc2V0KGFwcC0+YnJvd3NlciwgImJyb3dzZXIiKTsKKyAg
ICB3aW5kb3ctPndlYnZpZXcgPSBld2tfdmlld19hZGQod2luZG93LT5ldmFzKTsKKyAgICBld2tf
dmlld190aGVtZV9zZXQod2luZG93LT53ZWJ2aWV3LCBUSEVNRV9ESVIiL2RlZmF1bHQuZWRqIik7
CisgICAgZXdrX3NldHRpbmdzX2VuYWJsZV9mcmFtZV9mbGF0dGVuaW5nX3NldChld2tfdmlld19z
ZXR0aW5nc19nZXQod2luZG93LT53ZWJ2aWV3KSwgZnJhbWVfZmxhdHRlbmluZyk7CiAKLSAgICBF
d2tfU2V0dGluZ3MgKnNldHRpbmdzID0gZXdrX3ZpZXdfc2V0dGluZ3NfZ2V0KGFwcC0+YnJvd3Nl
cik7CisgICAgRXdrX1NldHRpbmdzICpzZXR0aW5ncyA9IGV3a192aWV3X3NldHRpbmdzX2dldCh3
aW5kb3ctPndlYnZpZXcpOwogICAgIGV3a19zZXR0aW5nc19maWxlX2FjY2Vzc19mcm9tX2ZpbGVf
dXJsc19hbGxvd2VkX3NldChzZXR0aW5ncywgRUlOQV9UUlVFKTsKIAotICAgIGV2YXNfb2JqZWN0
X3NtYXJ0X2NhbGxiYWNrX2FkZChhcHAtPmJyb3dzZXIsICJkb3dubG9hZCxmYWlsZWQiLCBvbl9k
b3dubG9hZF9mYWlsZWQsIGFwcCk7Ci0gICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tfYWRk
KGFwcC0+YnJvd3NlciwgImRvd25sb2FkLGZpbmlzaGVkIiwgb25fZG93bmxvYWRfZmluaXNoZWQs
IGFwcCk7Ci0gICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tfYWRkKGFwcC0+YnJvd3Nlciwg
ImRvd25sb2FkLHJlcXVlc3QiLCBvbl9kb3dubG9hZF9yZXF1ZXN0LCBhcHApOwotICAgIGV2YXNf
b2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2FkZChhcHAtPmJyb3dzZXIsICJsb2FkLGVycm9yIiwgb25f
ZXJyb3IsIGFwcCk7Ci0gICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tfYWRkKGFwcC0+YnJv
d3NlciwgImxvYWQscHJvZ3Jlc3MiLCBvbl9wcm9ncmVzcywgYXBwKTsKLSAgICBldmFzX29iamVj
dF9zbWFydF9jYWxsYmFja19hZGQoYXBwLT5icm93c2VyLCAidGl0bGUsY2hhbmdlZCIsIG9uX3Rp
dGxlX2NoYW5nZWQsIGFwcCk7Ci0gICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tfYWRkKGFw
cC0+YnJvd3NlciwgInVyaSxjaGFuZ2VkIiwgb25fdXJsX2NoYW5nZWQsIGFwcCk7CisgICAgZXZh
c19vYmplY3Rfc21hcnRfY2FsbGJhY2tfYWRkKHdpbmRvdy0+d2VidmlldywgImRvd25sb2FkLGZh
aWxlZCIsIG9uX2Rvd25sb2FkX2ZhaWxlZCwgd2luZG93KTsKKyAgICBldmFzX29iamVjdF9zbWFy
dF9jYWxsYmFja19hZGQod2luZG93LT53ZWJ2aWV3LCAiZG93bmxvYWQsZmluaXNoZWQiLCBvbl9k
b3dubG9hZF9maW5pc2hlZCwgd2luZG93KTsKKyAgICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFj
a19hZGQod2luZG93LT53ZWJ2aWV3LCAiZG93bmxvYWQscmVxdWVzdCIsIG9uX2Rvd25sb2FkX3Jl
cXVlc3QsIHdpbmRvdyk7CisgICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tfYWRkKHdpbmRv
dy0+d2VidmlldywgImxvYWQsZXJyb3IiLCBvbl9lcnJvciwgd2luZG93KTsKKyAgICBldmFzX29i
amVjdF9zbWFydF9jYWxsYmFja19hZGQod2luZG93LT53ZWJ2aWV3LCAibG9hZCxwcm9ncmVzcyIs
IG9uX3Byb2dyZXNzLCB3aW5kb3cpOworICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2Fk
ZCh3aW5kb3ctPndlYnZpZXcsICJ0aXRsZSxjaGFuZ2VkIiwgb25fdGl0bGVfY2hhbmdlZCwgd2lu
ZG93KTsKKyAgICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFja19hZGQod2luZG93LT53ZWJ2aWV3
LCAidXJpLGNoYW5nZWQiLCBvbl91cmxfY2hhbmdlZCwgd2luZG93KTsKIAotICAgIGV2YXNfb2Jq
ZWN0X2V2ZW50X2NhbGxiYWNrX2FkZChhcHAtPmJyb3dzZXIsIEVWQVNfQ0FMTEJBQ0tfS0VZX0RP
V04sIG9uX2tleV9kb3duLCBhcHApOwotICAgIGV2YXNfb2JqZWN0X2V2ZW50X2NhbGxiYWNrX2Fk
ZChhcHAtPmJyb3dzZXIsIEVWQVNfQ0FMTEJBQ0tfTU9VU0VfRE9XTiwgb25fbW91c2VfZG93biwg
YXBwKTsKKyAgICBldmFzX29iamVjdF9ldmVudF9jYWxsYmFja19hZGQod2luZG93LT53ZWJ2aWV3
LCBFVkFTX0NBTExCQUNLX0tFWV9ET1dOLCBvbl9rZXlfZG93biwgd2luZG93KTsKKyAgICBldmFz
X29iamVjdF9ldmVudF9jYWxsYmFja19hZGQod2luZG93LT53ZWJ2aWV3LCBFVkFTX0NBTExCQUNL
X01PVVNFX0RPV04sIG9uX21vdXNlX2Rvd24sIHdpbmRvdyk7CiAKLSAgICBldmFzX29iamVjdF9z
aXplX2hpbnRfd2VpZ2h0X3NldChhcHAtPmJyb3dzZXIsIEVWQVNfSElOVF9FWFBBTkQsIEVWQVNf
SElOVF9FWFBBTkQpOwotICAgIGV2YXNfb2JqZWN0X21vdmUoYXBwLT5icm93c2VyLCAwLCBVUkxf
QkFSX0hFSUdIVCk7Ci0gICAgZXZhc19vYmplY3RfcmVzaXplKGFwcC0+YnJvd3NlciwgREVGQVVM
VF9XSURUSCwgREVGQVVMVF9IRUlHSFQgLSBVUkxfQkFSX0hFSUdIVCk7Ci0gICAgZXZhc19vYmpl
Y3Rfc2hvdyhhcHAtPmJyb3dzZXIpOwotICAgIGV2YXNfb2JqZWN0X2ZvY3VzX3NldChhcHAtPmJy
b3dzZXIsIEVJTkFfVFJVRSk7CisgICAgZXZhc19vYmplY3Rfc2l6ZV9oaW50X3dlaWdodF9zZXQo
d2luZG93LT53ZWJ2aWV3LCBFVkFTX0hJTlRfRVhQQU5ELCBFVkFTX0hJTlRfRVhQQU5EKTsKKyAg
ICBldmFzX29iamVjdF9tb3ZlKHdpbmRvdy0+d2VidmlldywgMCwgVVJMX0JBUl9IRUlHSFQpOwor
ICAgIGV2YXNfb2JqZWN0X3Jlc2l6ZSh3aW5kb3ctPndlYnZpZXcsIERFRkFVTFRfV0lEVEgsIERF
RkFVTFRfSEVJR0hUIC0gVVJMX0JBUl9IRUlHSFQpOworICAgIGV2YXNfb2JqZWN0X3Nob3cod2lu
ZG93LT53ZWJ2aWV3KTsKKyAgICBldmFzX29iamVjdF9mb2N1c19zZXQod2luZG93LT53ZWJ2aWV3
LCBFSU5BX1RSVUUpOwogCi0gICAgYXBwLT51cmxfYmFyID0gdXJsX2Jhcl9hZGQoYXBwLT5icm93
c2VyLCBERUZBVUxUX1dJRFRIKTsKKyAgICB3aW5kb3ctPnVybF9iYXIgPSB1cmxfYmFyX2FkZCh3
aW5kb3ctPndlYnZpZXcsIERFRkFVTFRfV0lEVEgpOwogCi0gICAgZXdrX3ZpZXdfdXJpX3NldChh
cHAtPmJyb3dzZXIsIHVybCk7CisgICAgZXdrX3ZpZXdfdXJpX3NldCh3aW5kb3ctPndlYnZpZXcs
IHVybCk7CiAKLSAgICByZXR1cm4gYXBwOworICAgIHJldHVybiB3aW5kb3c7CiB9CiAKIGludCBt
YWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCiB7CiAgICAgaW50IGFyZ3MgPSAxOwotICAgIGNo
YXIgKmVuZ2luZSA9IE5VTEw7CiAgICAgdW5zaWduZWQgY2hhciBxdWl0T3B0aW9uID0gMDsKKyAg
ICBCcm93c2VyX1dpbmRvdyAqd2luZG93OwogCiAgICAgRWluYV9Cb29sIGZyYW1lX2ZsYXR0ZW5p
bmcgPSBFSU5BX0ZBTFNFOwogCiAgICAgRWNvcmVfR2V0b3B0X1ZhbHVlIHZhbHVlc1tdID0gewot
ICAgICAgICBFQ09SRV9HRVRPUFRfVkFMVUVfU1RSKGVuZ2luZSksCisgICAgICAgIEVDT1JFX0dF
VE9QVF9WQUxVRV9TVFIoZXZhc19lbmdpbmVfbmFtZSksCiAgICAgICAgIEVDT1JFX0dFVE9QVF9W
QUxVRV9CT09MKHF1aXRPcHRpb24pLAogICAgICAgICBFQ09SRV9HRVRPUFRfVkFMVUVfQk9PTChm
cmFtZV9mbGF0dGVuaW5nKSwKICAgICAgICAgRUNPUkVfR0VUT1BUX1ZBTFVFX0JPT0wocXVpdE9w
dGlvbiksCkBAIC0zMzAsMjIgKzM4NCwyMSBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqYXJn
dltdKQogCiAgICAgaWYgKGFyZ3MgPCBhcmdjKSB7CiAgICAgICAgIGNoYXIgKnVybCA9IHVybF9m
cm9tX3VzZXJfaW5wdXQoYXJndlthcmdzXSk7Ci0gICAgICAgIGJyb3dzZXIgPSBicm93c2VyQ3Jl
YXRlKHVybCwgZW5naW5lLCBmcmFtZV9mbGF0dGVuaW5nKTsKKyAgICAgICAgd2luZG93ID0gd2lu
ZG93X2NyZWF0ZSh1cmwsIGZyYW1lX2ZsYXR0ZW5pbmcpOwogICAgICAgICBmcmVlKHVybCk7CiAg
ICAgfSBlbHNlCi0gICAgICAgIGJyb3dzZXIgPSBicm93c2VyQ3JlYXRlKERFRkFVTFRfVVJMLCBl
bmdpbmUsIGZyYW1lX2ZsYXR0ZW5pbmcpOworICAgICAgICB3aW5kb3cgPSB3aW5kb3dfY3JlYXRl
KERFRkFVTFRfVVJMLCBmcmFtZV9mbGF0dGVuaW5nKTsKKworICAgIGlmICghd2luZG93KQorICAg
ICAgICByZXR1cm4gcXVpdChFSU5BX0ZBTFNFLCAiRVJST1I6IGNvdWxkIG5vdCBjcmVhdGUgYnJv
d3NlciB3aW5kb3cuXG4iKTsKIAotICAgIGlmICghYnJvd3NlcikKLSAgICAgICAgcmV0dXJuIHF1
aXQoRUlOQV9GQUxTRSwgIkVSUk9SOiBjb3VsZCBub3QgY3JlYXRlIGJyb3dzZXIuXG4iKTsKKyAg
ICB3aW5kb3dzID0gZWluYV9saXN0X2FwcGVuZCh3aW5kb3dzLCB3aW5kb3cpOwogCiAgICAgRWNv
cmVfRXZlbnRfSGFuZGxlciAqaGFuZGxlID0gZWNvcmVfZXZlbnRfaGFuZGxlcl9hZGQoRUNPUkVf
RVZFTlRfU0lHTkFMX0VYSVQsIG1haW5fc2lnbmFsX2V4aXQsIDApOwogCiAgICAgZWNvcmVfbWFp
bl9sb29wX2JlZ2luKCk7CiAKLSAgICB1cmxfYmFyX2RlbChicm93c2VyLT51cmxfYmFyKTsKICAg
ICBlY29yZV9ldmVudF9oYW5kbGVyX2RlbChoYW5kbGUpOwotICAgIGVjb3JlX2V2YXNfZnJlZShi
cm93c2VyLT5lZSk7Ci0gICAgZnJlZShicm93c2VyKTsKIAogICAgIHJldHVybiBxdWl0KEVJTkFf
VFJVRSwgTlVMTCk7CiB9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>