secondlife / jira-archive

2 stars 0 forks source link

[BUG-6557] Viewer does not print a list of URLs within square braces with ", " as separator #14405

Open sl-service-account opened 10 years ago

sl-service-account commented 10 years ago

Steps to Reproduce

  1. Login
  2. Say "<http://mp3.webradio.antenne.de:80, http://87.117.193.43:8130, http://station.kryptonradio.com:8000/stream>" in chat
  3. Observe the output in the chat window

    Original repro: Create a plywood box (i called it "TestObj" for records) with this script inside:

    
    list streams = [
       "http://mp3.webradio.antenne.de:80",
       "http://87.117.193.43:8130",
       "http://station.kryptonradio.com:8000/stream"];
    
    default {
       state_entry() {
           llOwnerSay("llList2CSV(streams)");
           llOwnerSay("["+llList2CSV(streams)+"]");
           llOwnerSay(".");
           llOwnerSay("llDumpList2String(streams, \", \")");
           llOwnerSay("["+llDumpList2String(streams, ", ")+"]");
           llOwnerSay(".");
           llOwnerSay("llDumpList2String(streams, \",\")");
           llOwnerSay("["+llDumpList2String(streams, ",")+"]");
       }
    }

    Actual Behavior

    Only the first URL and first comma is printed in the chat window, i.e.

    http://mp3.webradio.antenne.de:80,

    Original report: This is the output of the script:

    
    [06:10] TestObj: llList2CSV(streams)
    [06:10] TestObj: http://mp3.webradio.antenne.de:80,
    [06:10] TestObj: .
    [06:10] TestObj: llDumpList2String(streams, ", ")
    [06:10] TestObj: http://mp3.webradio.antenne.de:80,
    [06:10] TestObj: .
    [06:10] TestObj: llDumpList2String(streams, ",")
    [06:10] TestObj: [http://mp3.webradio.antenne.de:80,http://87.117.193.43:8130,http://station.kryptonradio.com:8000/stream]

    Expected Behavior

    All 3 URLs should be printed in the chat window and should appear as hyperlinks.

    Original report: The functions llList2CSV and llDumpList2String should print the whole list of stream urls without clamping, the output would look like this:

    
    [06:10] TestObj: llList2CSV(streams)
    [06:10] TestObj: [http://mp3.webradio.antenne.de:80, http://87.117.193.43:8130, http://station.kryptonradio.com:8000/stream]
    [06:10] TestObj: .
    [06:10] TestObj: llDumpList2String(streams, ", ")
    [06:10] TestObj: [http://mp3.webradio.antenne.de:80, http://87.117.193.43:8130, http://station.kryptonradio.com:8000/stream]
    [06:10] TestObj: .
    [06:10] TestObj: llDumpList2String(streams, ",")
    [06:10] TestObj: [http://mp3.webradio.antenne.de:80,http://87.117.193.43:8130,http://station.kryptonradio.com:8000/stream]

    Other information

    Since the command llList2CSV(streams); has the same broken output the command llDumpList2String(streams, ", "); produces, I'd assume that the llList2CSV function delegates to the llDumpList2String function internally. This is why i named the later one in the title of this post.

    However, the problem may be even not in the llDumpList2String function at all but even deeper, in the llOwnerSay function, because the leading and trailing square brakets were also missed in the broken output.

Original Jira Fields | Field | Value | | ------------- | ------------- | | Issue | BUG-6557 | | Summary | Viewer does not print a list of URLs within square braces with ", " as separator | | Type | Bug | | Priority | Unset | | Status | Accepted | | Resolution | Accepted | | Reporter | Jenna Felton (jenna.felton) | | Created at | 2014-07-03T13:17:19Z | | Updated at | 2014-07-03T19:20:42Z | ``` { 'Business Unit': ['Platform'], 'Date of First Response': '2014-07-03T08:58:24.707-0500', 'System': 'SL Viewer', 'Target Viewer Version': 'viewer-development', 'What just happened?': '.', 'What were you doing when it happened?': '.', 'What were you expecting to happen instead?': '.', } ```
sl-service-account commented 10 years ago

Lucia Nightfire commented at 2014-07-03T13:58:25Z, updated at 2014-07-03T13:58:50Z

This seems to be a viewer bug with the recent url protections. Doesn't seem to affect older viewers that don't use that code.

sl-service-account commented 10 years ago

Lucia Nightfire commented at 2014-07-03T14:14:52Z, updated at 2014-07-03T14:20:29Z

Actually this may have been expected behaviour all along as if any part of the label contains "http://" followed by any text, the entire label is ignored and the target url is only displayed. This sounds like part of the anti-phishing protections that were recently put in place in the viewer.

sl-service-account commented 10 years ago

Jenna Felton commented at 2014-07-03T14:51:31Z, updated at 2014-07-03T14:58:43Z

Hello Lucia

Originally i found the bug while using Firestorm 4.6.1.

Than I got the idea, too, that it could be a viewer bug and tested also with the SL viewer, 3.7.10 (291134) with the same result. So I did not add the viewer info to the issue, but i do it now.

Edit: I am not sure how URL protection would clamp two outputs and accept the third. But it may be a code in the viewer which reacts allergically on special formated list of URLs. I think Lindens can compare what the servers sent and what the viewer received, so thank you that you had the idea :)

sl-service-account commented 10 years ago

Lucia Nightfire commented at 2014-07-03T15:22:04Z, updated at 2014-07-03T15:23:06Z

The third shows all text because the string wasn't processed as a label as there has to be at least one space separating text inside the brackets and the first string must start with "http://" or "https://" followed by a minimum of one characater that isn't a space. In other words, it thinks its all one url.

sl-service-account commented 10 years ago

Maestro Linden commented at 2014-07-03T17:28:37Z

Yes this is a viewer parsing issue, which I can reproduce with 'Second Life 3.7.10 (291134) Jun 17 2014 23:13:05 (Second Life Release)'. If you paste the following string into chat, you see the same output (first URL, then first comma only):

[http://mp3.webradio.antenne.de:80, http://87.117.193.43:8130, http://station.kryptonradio.com:8000/stream]

Without the square braces, the full list is printed. The 'magic' behind the [] is that those are also used for keywords in notifications, e.g. "You have been banned from [REGION]".

sl-service-account commented 10 years ago

Jenna Felton commented at 2014-07-03T19:20:42Z

Thank you for clearing that Maestro :) another thing to think about while debugging.