@@ -1944,7 +1944,11 @@ bson_iter_visit_all (bson_iter_t *iter, /* INOUT */
1944
1944
1945
1945
bson_iter_document (iter , & doclen , & docbuf );
1946
1946
1947
- if (bson_init_static (& b , docbuf , doclen ) && VISIT_DOCUMENT (iter , key , & b , data )) {
1947
+ if (!bson_init_static (& b , docbuf , doclen )) {
1948
+ iter -> err_off = iter -> off ;
1949
+ break ;
1950
+ }
1951
+ if (VISIT_DOCUMENT (iter , key , & b , data )) {
1948
1952
return true;
1949
1953
}
1950
1954
} break ;
@@ -1955,7 +1959,11 @@ bson_iter_visit_all (bson_iter_t *iter, /* INOUT */
1955
1959
1956
1960
bson_iter_array (iter , & doclen , & docbuf );
1957
1961
1958
- if (bson_init_static (& b , docbuf , doclen ) && VISIT_ARRAY (iter , key , & b , data )) {
1962
+ if (!bson_init_static (& b , docbuf , doclen )) {
1963
+ iter -> err_off = iter -> off ;
1964
+ break ;
1965
+ }
1966
+ if (VISIT_ARRAY (iter , key , & b , data )) {
1959
1967
return true;
1960
1968
}
1961
1969
} break ;
@@ -2079,7 +2087,11 @@ bson_iter_visit_all (bson_iter_t *iter, /* INOUT */
2079
2087
return true;
2080
2088
}
2081
2089
2082
- if (bson_init_static (& b , docbuf , doclen ) && VISIT_CODEWSCOPE (iter , key , length , code , & b , data )) {
2090
+ if (!bson_init_static (& b , docbuf , doclen )) {
2091
+ iter -> err_off = iter -> off ;
2092
+ break ;
2093
+ }
2094
+ if (VISIT_CODEWSCOPE (iter , key , length , code , & b , data )) {
2083
2095
return true;
2084
2096
}
2085
2097
} break ;
0 commit comments