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

Yevgeny Kliteynik kliteyn at dev.mellanox.co.il
Sun Nov 26 07:51:52 PST 2006


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.
> 
> Sasha
> 




More information about the general mailing list