Index: /src/router/services/sysinit/defaults.c =================================================================== --- /src/router/services/sysinit/defaults.c (revision 12397) +++ /src/router/services/sysinit/defaults.c (revision 12425) @@ -2635,10 +2635,15 @@ defaultnum); for (i = 0; i < defaultnum; i++) { - int vl = getc(in); + unsigned int vl = (unsigned int)getc(in); if (vl) { srouter_defaults[i].name = malloc(vl + 1); fread(srouter_defaults[i].name, vl, 1, in); srouter_defaults[i].name[vl] = 0; - vl = getc(in); + vl = (unsigned int)getc(in); + if (vl&128) + { + vl&=127; + vl|= (unsigned int)getc(in)<<7; + } srouter_defaults[i].value = malloc(vl + 1); fread(srouter_defaults[i].value, vl, 1, in); Index: /src/router/services/bin/defaults.c =================================================================== --- /src/router/services/bin/defaults.c (revision 12396) +++ /src/router/services/bin/defaults.c (revision 12425) @@ -17,5 +17,14 @@ putc(strlen(srouter_defaults[i].name),out); fwrite(srouter_defaults[i].name,strlen(srouter_defaults[i].name),1,out); - putc(strlen(srouter_defaults[i].value),out); + len = strlen(srouter_defaults[i].value); + if (len>127) + { + len|=128; + putc(len,out); + putc(strlen(srouter_defaults[i].value)>>7,out); + }else + { + putc(len,out); + } fwrite(srouter_defaults[i].value,strlen(srouter_defaults[i].value),1,out); }else{