Line data Source code
1 : #include "mfhdf.h" 2 : #include "HdfEosDef.h" 3 : #include "hfile.h" 4 : 5 582 : int32 VgetnameSafe(int32 vkey, char *vgname, size_t vgnamesize) 6 : { 7 : #if LIBVER_MAJOR == 4 && LIBVER_MINOR >= 4 8 : size_t len = 0; 9 : if( Vgetname(vkey, NULL, &len) != SUCCEED || 10 : len >= vgnamesize || 11 : Vgetname(vkey, vgname, &vgnamesize) != SUCCEED) 12 : { 13 : vgname[0] = 0; 14 : return DFE_BADLEN; 15 : } 16 : return SUCCEED; 17 : #else 18 582 : uint16 name_len = 0; 19 582 : if (Vgetnamelen(vkey, &name_len) != SUCCEED) 20 : { 21 0 : vgname[0] = 0; 22 0 : return DFE_BADLEN; 23 : } 24 582 : if (name_len >= vgnamesize ) 25 : { 26 0 : vgname[0] = 0; 27 0 : return DFE_BADLEN; 28 : } 29 582 : return Vgetname(vkey, vgname); 30 : #endif 31 : }