Просмотр исходного кода

Fix: RPC call causes xray panic problem using wrong account type (#3744)

* fix:RPC call causes xray panic problem. Problem details: add a VMess protocol user in an inbound proxy. If inTag: "VMess-xxx", but the developer carelessly calls the add user method of vless or other protocols, such as xrayCtl.AddVlessUser(user), causing xray panic

* fix:use xray log system return error

---------

Co-authored-by: [email protected] <[email protected]>
yu 1 год назад
Родитель
Сommit
c90affe7db
1 измененных файлов с 4 добавлено и 1 удалено
  1. 4 1
      proxy/vmess/validator.go

+ 4 - 1
proxy/vmess/validator.go

@@ -39,7 +39,10 @@ func (v *TimedUserValidator) Add(u *protocol.MemoryUser) error {
 
 
 	v.users = append(v.users, u)
 	v.users = append(v.users, u)
 
 
-	account := u.Account.(*MemoryAccount)
+	account, ok := u.Account.(*MemoryAccount)
+	if !ok {
+		return errors.New("account type is incorrect")
+	}
 	if !v.behaviorFused {
 	if !v.behaviorFused {
 		hashkdf := hmac.New(sha256.New, []byte("VMESSBSKDF"))
 		hashkdf := hmac.New(sha256.New, []byte("VMESSBSKDF"))
 		hashkdf.Write(account.ID.Bytes())
 		hashkdf.Write(account.ID.Bytes())