added union semun, weird memory make err