passwdpop function (cPanel API2) question

Serge SX

Registered
Jun 17, 2015
2
0
1
Ukraine
cPanel Access Level
DataCenter Provider
Hello!

Can anyone explain me a strange behavior of API processor? Here is the thing: I was changing passwords for mailboxes on server using passwdpop function, everything went well until I got an exception:

Code:
<style type="text/css">.cpanel_internal_message { border: 1px solid #fff; outline-style: solid; outline-width: 1px; outline-color: #aaa; padding: 5px; } .cpanel_internal_error_warn { background-color: #FFF6CF; } .cpanel_internal_error_error { background-color: #F8E7E6; }</style>
<div class="cjt-pagenotice-container cjt-notice-container" style="float: left; margin: 10px; width: auto;">
        <div class="yui-module cjt-notice cjt-pagenotice cjt-notice-warn">
                <div class="cpanel_internal_message cpanel_internal_error_warn bd">
                        <div class="cjt-notice-content" style="width: 420px;">
                                <span>
                                        A warning occurred while processing this directive.
                                        <a
                                                class="error"
                                                style="cursor:hand;cursor:pointer;"
                                                onClick="document.getElementById('cpanel_internal_error_1').style.display='';this.style.display='none'; return false;">
                                                [show]
                                        </a>
                                </span>
                                <div id="cpanel_internal_error_1" style="display:none;">
                                        <textarea class="cpanel_internal_error_warn" style="font-weight:900; height:200px; width:410px;">utf8 &quot;\xDE&quot; does not map to Unicode at /usr/local/cpanel/Cpanel/JSON.pm line 155.
at /usr/local/cpanel/Cpanel/JSON.pm line 155.
        Cpanel::JSON::LoadFile(GLOB(0x4985240), undef, 1) called at /usr/local/cpanel/Cpanel/AdminBin/Serializer.pm line 48
        Cpanel::AdminBin::Serializer::LoadFile(GLOB(0x4985240)) called at cpanel.pl line 812
        eval {...} called at cpanel.pl line 812
</textarea>
                                </div>
                        </div>
                </div>
        </div>
</div>
        {"cpanelresult":{"apiversion":"2","data":{"reason":"Failed to read valid json data in json fast mode: illegal backslash escape sequence in string, at character offset 37 (before \"\\\\xDELiKJ*0\",\"domain...\") at /usr/local/cpanel/Cpanel/JSON.pm line 120, <STDIN> line 1.\n","result":"0"},"type":"text"}}
I discovered that it happened with the following password:

^@qZAX3Ca%dELiKJ*0

Furthermore, there will be no exception if you replace % character in it to another position or just even add one more near it.

So what is wrong with % char? Is it about combination with "d" or "a" near it?
 

cPanelKenneth

cPanel Development
Staff member
Apr 7, 2006
4,607
80
458
cPanel Access Level
Root Administrator
'%' often has special meaning. Does the problem go away when you URI encode % (replace % with %25)?
 

Serge SX

Registered
Jun 17, 2015
2
0
1
Ukraine
cPanel Access Level
DataCenter Provider
'%' often has special meaning. Does the problem go away when you URI encode % (replace % with %25)?
Yes, I suspected that. In order to make process simpler, I just removed "%" from the pool of characters for password generation - much easier than find and encode it every time.

But thank you for the reply and advice!