לדלג לתוכן

תרגול לכידת קלט

תכננו בקשה שמכילה version, length ו־payload רציף, בלי pointer מקונן. כתבו validation שמתרחש רק אחרי לכידת הנתונים וכולל בדיקת overflow של offsets. הגדירו אם שינוי המשתמש בזמן ההעתקה מותר להניב קלט שנדחה.

בנו אפליקציית בדיקה ב־VM שמשנה header במקביל לשליחת בקשות, והוכיחו שהדרייבר אינו משתמש באורך שנקרא בפעם שנייה מן המשתמש. אין צורך לייצר קריסה כדי להצליח בבדיקה; תוצאה תקינה היא דחייה עקבית של בקשות לא תקפות.

ציירו את חיי ה־MDL עבור direct I/O שבבעלות I/O manager ולעומת MDL שהדרייבר מקצה ונועל בעצמו. סמנו mapping, completion, unlock ו־free, והסבירו היכן אסור לשחרר פעמיים.