[openib-general] [PATCH] osm: 'chmod' on Windows
Yevgeny Kliteynik
kliteyn at dev.mellanox.co.il
Sun Nov 26 11:49:49 PST 2006
Sasha Khapyorsky wrote:
> 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".
Right, missed that line :)
> 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?
Good idea.
Thanks.
-- Yevgeny
> Sasha
>
More information about the general
mailing list