@@ -2792,18 +2792,21 @@ void StdLibraryFunctionsChecker::initFunctionSummaries(
2792
2792
.ArgConstraint (NotNull (ArgNo (2 ))));
2793
2793
2794
2794
// DIR *opendir(const char *name);
2795
- // FIXME: Improve for errno modeling.
2796
2795
addToFunctionSummaryMap (
2797
2796
" opendir" , Signature (ArgTypes{ConstCharPtrTy}, RetType{DirPtrTy}),
2798
- Summary (NoEvalCall).ArgConstraint (NotNull (ArgNo (0 ))));
2797
+ Summary (NoEvalCall)
2798
+ .Case ({NotNull (Ret)}, ErrnoMustNotBeChecked, GenericSuccessMsg)
2799
+ .Case ({IsNull (Ret)}, ErrnoNEZeroIrrelevant, GenericFailureMsg)
2800
+ .ArgConstraint (NotNull (ArgNo (0 ))));
2799
2801
2800
2802
// DIR *fdopendir(int fd);
2801
- // FIXME: Improve for errno modeling.
2802
- addToFunctionSummaryMap (" fdopendir" ,
2803
- Signature (ArgTypes{IntTy}, RetType{DirPtrTy}),
2804
- Summary (NoEvalCall)
2805
- .ArgConstraint (ArgumentCondition (
2806
- 0 , WithinRange, Range (0 , IntMax))));
2803
+ addToFunctionSummaryMap (
2804
+ " fdopendir" , Signature (ArgTypes{IntTy}, RetType{DirPtrTy}),
2805
+ Summary (NoEvalCall)
2806
+ .Case ({NotNull (Ret)}, ErrnoMustNotBeChecked, GenericSuccessMsg)
2807
+ .Case ({IsNull (Ret)}, ErrnoNEZeroIrrelevant, GenericFailureMsg)
2808
+ .ArgConstraint (
2809
+ ArgumentCondition (0 , WithinRange, Range (0 , IntMax))));
2807
2810
2808
2811
// int isatty(int fildes);
2809
2812
addToFunctionSummaryMap (
0 commit comments