瀏覽代碼

Fix: empty embedded server list resulted in error

Rod Hynes 11 年之前
父節點
當前提交
2f2e53378b
共有 1 個文件被更改,包括 6 次插入0 次删除
  1. 6 0
      psiphon/serverEntry.go

+ 6 - 0
psiphon/serverEntry.go

@@ -96,15 +96,21 @@ func ValidateServerEntry(serverEntry *ServerEntry) error {
 func DecodeAndValidateServerEntryList(encodedServerEntryList string) (serverEntries []*ServerEntry, err error) {
 func DecodeAndValidateServerEntryList(encodedServerEntryList string) (serverEntries []*ServerEntry, err error) {
 	serverEntries = make([]*ServerEntry, 0)
 	serverEntries = make([]*ServerEntry, 0)
 	for _, encodedServerEntry := range strings.Split(encodedServerEntryList, "\n") {
 	for _, encodedServerEntry := range strings.Split(encodedServerEntryList, "\n") {
+		if len(encodedServerEntry) == 0 {
+			continue
+		}
+
 		// TODO: skip this entry and continue if can't decode?
 		// TODO: skip this entry and continue if can't decode?
 		serverEntry, err := DecodeServerEntry(encodedServerEntry)
 		serverEntry, err := DecodeServerEntry(encodedServerEntry)
 		if err != nil {
 		if err != nil {
 			return nil, ContextError(err)
 			return nil, ContextError(err)
 		}
 		}
+
 		if ValidateServerEntry(serverEntry) != nil {
 		if ValidateServerEntry(serverEntry) != nil {
 			// Skip this entry and continue with the next one
 			// Skip this entry and continue with the next one
 			continue
 			continue
 		}
 		}
+
 		serverEntries = append(serverEntries, serverEntry)
 		serverEntries = append(serverEntries, serverEntry)
 	}
 	}
 	return serverEntries, nil
 	return serverEntries, nil