A $ or backslash in command arguments crashes messages

Đang mở Phù hợp với người mới
#69 0 bình luận 0 reaction 0 người được giao Xem trên GitHub

Maintainer thường phản hồi trong vòng 1 ngày

Chưa có ai nhận issue này.

Đánh giá

Độ khó
2/5
Thời gian dự kiến
1-3 giờ
Mức phù hợp với người mới
82/100
Loại issue
Lỗi
Độ rõ ràng
Đặc tả rõ ràng
Mức độ hoạt động
Sôi nổi
Công nghệ
java
Lĩnh vực
backend

Hướng nghiên cứu

Đọc Notifier.format và AbstractNotifier.format trong mô-đun core, sau đó tìm các bài kiểm thử hiện có của chúng. Kiểm tra cách Matcher.appendReplacement xử lý chuỗi thay thế và bổ sung kiểm thử cho các đối số chứa $ và \. Công việc hoàn tất khi cả hai phương thức escape các giá trị thay thế và các bài kiểm thử đều đạt.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

bug

Problem

A $ or \ in a command argument or store name can crash the command. Notifier.format passes values to Matcher.appendReplacement without quoting them, so they're treated as regex group references.

For example, /shop buy $5 1 fails with "An internal error occurred" and IndexOutOfBoundsException: No group 5. A value like $1 doesn't crash, but prints the placeholder's name instead of the value.

/shop create a$5b is worse, because the store is created before the success message throws. The player sees an error, but the store exists.

AbstractNotifier.format in core has the same code.

Done when

  • Both format methods use Matcher.quoteReplacement.
  • A test covers values containing $ and \.
Ngôn ngữ chính
Java
Star
1
Fork
0
Merge trung bình
2 giờ 17 phút
Pull request đã merge (30 ngày)
13

Chuẩn bị môi trường

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của BrendonButler/Shops

Tất cả issue của BrendonButler/Shops

Issue tương tự

Thêm issue về Java

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.