[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