Shared mem debug
This commit is contained in:
		
							
								
								
									
										11
									
								
								src/cache.c
									
									
									
									
									
								
							
							
						
						
									
										11
									
								
								src/cache.c
									
									
									
									
									
								
							@@ -35,11 +35,20 @@ int cache_process() {
 | 
				
			|||||||
        fprintf(stderr, ERR_STR "Unable to create shared memory: %s" CLR_STR "\n", strerror(errno));
 | 
					        fprintf(stderr, ERR_STR "Unable to create shared memory: %s" CLR_STR "\n", strerror(errno));
 | 
				
			||||||
        return -1;
 | 
					        return -1;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    struct shmid_ds info;
 | 
				
			||||||
 | 
					    if (shmctl(shm_id, IPC_STAT, &info) < 0) goto shmctl_err;
 | 
				
			||||||
 | 
					    info.shm_perm.mode = 0600;
 | 
				
			||||||
 | 
					    if (shmctl(shm_id, IPC_SET, &info) < 0) {
 | 
				
			||||||
 | 
					        shmctl_err:
 | 
				
			||||||
 | 
					        fprintf(stderr, ERR_STR "Unable to update permissions for shared memory: %s" CLR_STR "\n", strerror(errno));
 | 
				
			||||||
 | 
					        return -3;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    shmdt(cache);
 | 
					    shmdt(cache);
 | 
				
			||||||
    void *shm_rw = shmat(shm_id, NULL, 0);
 | 
					    void *shm_rw = shmat(shm_id, NULL, 0);
 | 
				
			||||||
    if (shm_rw == (void *) -1) {
 | 
					    if (shm_rw == (void *) -1) {
 | 
				
			||||||
        fprintf(stderr, ERR_STR "Unable to attach shared memory (rw): %s" CLR_STR "\n", strerror(errno));
 | 
					        fprintf(stderr, ERR_STR "Unable to attach shared memory (rw): %s" CLR_STR "\n", strerror(errno));
 | 
				
			||||||
        shmctl(shm_id, IPC_RMID, NULL);
 | 
					 | 
				
			||||||
        return -2;
 | 
					        return -2;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    cache = shm_rw;
 | 
					    cache = shm_rw;
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user