[openib-general] [PATCH] osm: 'chmod' on Windows

Sasha Khapyorsky sashak at voltaire.com
Sun Nov 26 09:24:20 PST 2006


On 18:28 Sun 26 Nov     , Yevgeny Kliteynik wrote:
> Hal, please disregard this patch.
> 
> Sasha, see below
> 
> Thanks.
> 
> Yevgeny Kliteynik wrote:
> > Sasha Khapyorsky wrote:
> >> On 15:22 Sun 26 Nov     , Yevgeny Kliteynik wrote:
> >>> Fixing to match 'chmod' implementation on Windows.
> >>> Note that on Windows 'chmod' there's no such thing 
> >>> as user/group/all permissions - the permissions are 
> >>> aways for 'all'.
> >>> Don't see why this would be a problem in this case,
> >>> but still - worth mentioning.
> >> It is because SA dump file contains privileged information like lists
> >> of subscribed ports.
> > 
> > Well, since it's being dumped in the same directory as the OSM log, 
> > I guess it gets the same protection as the OSM log does, doesn't it?
> > 
> > -- Yevgeny
> >  
> >>> --
> >>> Yevgeny
> >>>
> >>> Signed-off-by:  Yevgeny Kliteynik <kliteyn at dev.mellanox.co.il>
> >>>  
> >>> Index: opensm/osm_sa.c
> >>> ===================================================================
> >>> --- opensm/osm_sa.c	(revision 10161)
> >>> +++ opensm/osm_sa.c	(working copy)
> >>> @@ -70,6 +70,9 @@
> >>>  #include <opensm/osm_multicast.h>
> >>>  #include <opensm/osm_inform.h>
> >>>  #include <opensm/osm_service.h>
> >>> +#ifdef WIN32
> >>> +#include <io.h>
> >>> +#endif /* WIN32 */
> >>>  
> >>>  #define  OSM_SA_INITIAL_TID_VALUE 0xabc
> >>>  
> >>> @@ -569,7 +572,11 @@ opensm_dump_to_file(osm_opensm_t *p_osm,
> >>>  		return -1;
> >>>  	}
> >>>  
> >>> +#ifndef WIN32
> >>>  	chmod(path, S_IRUSR|S_IWUSR);
> >>> +#else
> >>> +	_chmod(path, _S_IREAD|_S_IWRITE);
> >>> +#endif
> >> It would be very nice to not put such unneeded #ifdef(s) around common
> >> sources. You can simply wrap this function in your WIN32 specific
> >> config.h, something like:
> >>
> >> #define chmod(a,b) _chmod(a,b)
> >> #define S_IRUSR _S_IREAD
> >> #define S_IWUSR _S_IWRITE
> >>
> >> and this should solve this problem.
> 
> Or even better - I moved these defines to config.h on Windows, 
> so no patch required here.

Great, that was exactly what I meant by "WIN32 specific config.h".

BTW, I can count 19 another occurrences of '#ifdef WIN32' and
'#ifdef __WIN__' under management/osm tree. I guess that not each one
can be so trivially cleaned up as in this case, but would it be
possible to review it and reduce number of such #ifdef(s) in common
code?

Sasha




More information about the general mailing list