@@ -1089,7 +1089,7 @@ static umf_result_t os_allocation_split(void *provider, void *ptr,
1089
1089
(void )totalSize ;
1090
1090
1091
1091
os_memory_provider_t * os_provider = (os_memory_provider_t * )provider ;
1092
- if (os_provider -> fd <= 0 ) {
1092
+ if (os_provider -> fd < 0 ) {
1093
1093
return UMF_RESULT_SUCCESS ;
1094
1094
}
1095
1095
@@ -1122,7 +1122,7 @@ static umf_result_t os_allocation_merge(void *provider, void *lowPtr,
1122
1122
(void )totalSize ;
1123
1123
1124
1124
os_memory_provider_t * os_provider = (os_memory_provider_t * )provider ;
1125
- if (os_provider -> fd <= 0 ) {
1125
+ if (os_provider -> fd < 0 ) {
1126
1126
return UMF_RESULT_SUCCESS ;
1127
1127
}
1128
1128
@@ -1152,6 +1152,11 @@ static umf_result_t os_get_ipc_handle_size(void *provider, size_t *size) {
1152
1152
}
1153
1153
1154
1154
os_memory_provider_t * os_provider = (os_memory_provider_t * )provider ;
1155
+ if (os_provider -> fd < 0 ) {
1156
+ // IPC API requires params->visibility == UMF_MEM_MAP_SHARED
1157
+ LOG_ERR ("memory visibility mode is not UMF_MEM_MAP_SHARED" )
1158
+ return UMF_RESULT_ERROR_INVALID_ARGUMENT ;
1159
+ }
1155
1160
1156
1161
if (os_provider -> shm_name [0 ]) {
1157
1162
// os_ipc_data_t->shm_name will be used
@@ -1171,7 +1176,9 @@ static umf_result_t os_get_ipc_handle(void *provider, const void *ptr,
1171
1176
}
1172
1177
1173
1178
os_memory_provider_t * os_provider = (os_memory_provider_t * )provider ;
1174
- if (os_provider -> fd <= 0 ) {
1179
+ if (os_provider -> fd < 0 ) {
1180
+ // IPC API requires params->visibility == UMF_MEM_MAP_SHARED
1181
+ LOG_ERR ("memory visibility mode is not UMF_MEM_MAP_SHARED" )
1175
1182
return UMF_RESULT_ERROR_INVALID_ARGUMENT ;
1176
1183
}
1177
1184
@@ -1203,6 +1210,12 @@ static umf_result_t os_put_ipc_handle(void *provider, void *providerIpcData) {
1203
1210
}
1204
1211
1205
1212
os_memory_provider_t * os_provider = (os_memory_provider_t * )provider ;
1213
+ if (os_provider -> fd < 0 ) {
1214
+ // IPC API requires params->visibility == UMF_MEM_MAP_SHARED
1215
+ LOG_ERR ("memory visibility mode is not UMF_MEM_MAP_SHARED" )
1216
+ return UMF_RESULT_ERROR_INVALID_ARGUMENT ;
1217
+ }
1218
+
1206
1219
os_ipc_data_t * os_ipc_data = (os_ipc_data_t * )providerIpcData ;
1207
1220
1208
1221
if (os_ipc_data -> pid != utils_getpid ()) {
@@ -1229,6 +1242,12 @@ static umf_result_t os_open_ipc_handle(void *provider, void *providerIpcData,
1229
1242
}
1230
1243
1231
1244
os_memory_provider_t * os_provider = (os_memory_provider_t * )provider ;
1245
+ if (os_provider -> fd < 0 ) {
1246
+ // IPC API requires params->visibility == UMF_MEM_MAP_SHARED
1247
+ LOG_ERR ("memory visibility mode is not UMF_MEM_MAP_SHARED" )
1248
+ return UMF_RESULT_ERROR_INVALID_ARGUMENT ;
1249
+ }
1250
+
1232
1251
os_ipc_data_t * os_ipc_data = (os_ipc_data_t * )providerIpcData ;
1233
1252
umf_result_t ret = UMF_RESULT_SUCCESS ;
1234
1253
int fd ;
@@ -1269,6 +1288,13 @@ static umf_result_t os_close_ipc_handle(void *provider, void *ptr,
1269
1288
return UMF_RESULT_ERROR_INVALID_ARGUMENT ;
1270
1289
}
1271
1290
1291
+ os_memory_provider_t * os_provider = (os_memory_provider_t * )provider ;
1292
+ if (os_provider -> fd < 0 ) {
1293
+ // IPC API requires params->visibility == UMF_MEM_MAP_SHARED
1294
+ LOG_ERR ("memory visibility mode is not UMF_MEM_MAP_SHARED" )
1295
+ return UMF_RESULT_ERROR_INVALID_ARGUMENT ;
1296
+ }
1297
+
1272
1298
errno = 0 ;
1273
1299
int ret = utils_munmap (ptr , size );
1274
1300
// ignore error when size == 0
0 commit comments