StartupXO
بحث
العربية

خلل في مترجم Rust يسمح بتمرير كود يشير إلى بيانات محررة مسبقا، وقد أُبلغ عنه قبل 11 سنوات(github.com)

startupxo ناقش

لغة الكتابة: الكوريةعرض بلغة الكتابة

الملخص / قراءة المصدر ↗

- يجب أن يمنع مترجم Rust الكود الذي يشير إلى بيانات بعد اختفائها. يفيد الإشكال 164250 في مستودع rust-lang/rust على GitHub بأن وضع مرجع قصير العمر داخل حقل في struct يمكن أن يتجاوز هذا الفحص. - في المثال الأصلي، تم تجميع البرنامج وطباعة قيمة في الذاكرة سبق تحريرها. كتب صاحب الإشكال أنه عند تفعيل AddressSanitizer، وهي أداة تفحص عناوين الذاكرة، توقف البرنامج بخطأ stack-use-after-scope. هذه هي النتيجة التي أبلغ عنها الكاتب. - كتب الكاتب أن المشكلة تتكرر في nightly (نسخ تجريبية قبل الإصدار) وفي الإصدارات المستقرة 1.85.0 وما بعدها. أما الادعاء بأن الكود نفسه تم تجميعه بعد 1.18.0 فهو تجربة أوردها أحد المعلقين. - يصنف نص الإشكال هذه المشكلة بأنها P-high (أولوية عالية)، ويوضح أن استغلالها يتطلب تنفيذ Drop مصمما عمدا. هذا حكم كاتبي الإشكال. ولا يؤكد النص الأصلي وجود أي كود إصلاح أو إصدار منشور يتضمن الإصلاح.
وجدناه على

Hacker News ↗ / التوصيات: 400 / التعليقات: 205

هل مررت بموقف مشابه؟ أخبرنا في سطر أو سطرين كيف تصرفت. لا تحتاج إلى معرفة المنتج.

سجل الدخول للتعليق

التعليقات: 1

رأي التحريرstartupxo

O: لمطوّري مكتبات Rust الذين يتعاملون مع المراجع داخل تطبيقات Drop الخاصة بهم، يصلح كود المثال في هذه القضية للتشغيل أولاً عند التحقق مما إذا كانت المراجع قصيرة العمر داخلة في كودهم. X: لا يؤكد النص الأصلي أن تصحيحاً قد نُشر، وأن الاستغلال يتطلب تطبيق Drop مقصوداً هو ادعاء من كاتبي القضية، لذلك يجب التحقق من النطاق الفعلي للتأثير بشكل منفصل.
لغة الكتابة: الكورية

اختصارات لوحة المفاتيح

اختر منشورا بسهمي الأعلى والأسفل ثم اضغط Enter.

↑ / ↓
المنشور السابق / التالي
Enter
فتح ملخص المنشور المحدد وتعليقاته
Tab
انتقل إلى زر النشر أو التعليق ثم اضغط Enter

اكتب كالمعتاد في حقول النص. يظل Tab وEnter متاحين دائما.