| File: | home/bhubbard/working/src/ceph/src/mount/mount.ceph.c |
| Warning: | line 236, column 3 Value stored to 'name_pos' is never read |
[?] Use j/k keys for keyboard navigation
| 1 | #include <stdio.h> |
| 2 | #include <string.h> |
| 3 | #include <stdlib.h> |
| 4 | #include <errno(*__errno_location ()).h> |
| 5 | #include <sys/mount.h> |
| 6 | |
| 7 | #include "common/module.h" |
| 8 | #include "common/secret.h" |
| 9 | #include "include/addr_parsing.h" |
| 10 | |
| 11 | #ifndef MS_RELATIMEMS_RELATIME |
| 12 | # define MS_RELATIMEMS_RELATIME (1<<21) |
| 13 | #endif |
| 14 | |
| 15 | #define MAX_SECRET_LEN1000 1000 |
| 16 | #define MAX_SECRET_OPTION_LEN(1000 + 7) (MAX_SECRET_LEN1000 + 7) |
| 17 | |
| 18 | int verboseflag = 0; |
| 19 | int skip_mtab_flag = 0; |
| 20 | static const char * const EMPTY_STRING = ""; |
| 21 | |
| 22 | /* TODO duplicates logic from kernel */ |
| 23 | #define CEPH_AUTH_NAME_DEFAULT"guest" "guest" |
| 24 | |
| 25 | #include "mtab.c" |
| 26 | |
| 27 | static void block_signals (int how) |
| 28 | { |
| 29 | sigset_t sigs; |
| 30 | |
| 31 | sigfillset (&sigs); |
| 32 | sigdelset(&sigs, SIGTRAP5); |
| 33 | sigdelset(&sigs, SIGSEGV11); |
| 34 | sigprocmask (how, &sigs, (sigset_t *) 0); |
| 35 | } |
| 36 | |
| 37 | static char *mount_resolve_src(const char *orig_str) |
| 38 | { |
| 39 | int len, pos; |
| 40 | char *mount_path; |
| 41 | char *src; |
| 42 | char *buf = strdup(orig_str)(__extension__ (__builtin_constant_p (orig_str) && (( size_t)(const void *)((orig_str) + 1) - (size_t)(const void * )(orig_str) == 1) ? (((const char *) (orig_str))[0] == '\0' ? (char *) calloc ((size_t) 1, (size_t) 1) : ({ size_t __len = strlen (orig_str) + 1; char *__retval = (char *) malloc (__len ); if (__retval != ((void*)0)) __retval = (char *) memcpy (__retval , orig_str, __len); __retval; })) : __strdup (orig_str))); |
| 43 | if (!buf) { |
| 44 | fprintf(stderr, "%s: failed to allocate memory\n", __func__)__fprintf_chk (stderr, 2 - 1, "%s: failed to allocate memory\n" , __func__); |
| 45 | return NULL((void*)0); |
| 46 | } |
| 47 | |
| 48 | mount_path = strstr(buf, ":/"); |
| 49 | if (!mount_path) { |
| 50 | printf("source mount path was not specified\n")__printf_chk (2 - 1, "source mount path was not specified\n"); |
| 51 | free(buf); |
| 52 | return NULL((void*)0); |
| 53 | } |
| 54 | if (mount_path == buf) { |
| 55 | printf("server address expected\n")__printf_chk (2 - 1, "server address expected\n"); |
| 56 | free(buf); |
| 57 | return NULL((void*)0); |
| 58 | } |
| 59 | |
| 60 | *mount_path = '\0'; |
| 61 | mount_path++; |
| 62 | |
| 63 | if (!*mount_path) { |
| 64 | printf("incorrect source mount path\n")__printf_chk (2 - 1, "incorrect source mount path\n"); |
| 65 | free(buf); |
| 66 | return NULL((void*)0); |
| 67 | } |
| 68 | |
| 69 | src = resolve_addrs(buf); |
| 70 | if (!src) { |
| 71 | free(buf); |
| 72 | return NULL((void*)0); |
| 73 | } |
| 74 | |
| 75 | len = strlen(src); |
| 76 | pos = safe_cat(&src, &len, len, ":"); |
| 77 | safe_cat(&src, &len, pos, mount_path); |
| 78 | |
| 79 | free(buf); |
| 80 | return src; |
| 81 | } |
| 82 | |
| 83 | /* |
| 84 | * this one is partially based on parse_options() from cifs.mount.c |
| 85 | */ |
| 86 | static char *parse_options(const char *data, int *filesys_flags) |
| 87 | { |
| 88 | char * next_keyword = NULL((void*)0); |
| 89 | char * out = NULL((void*)0); |
| 90 | int out_len = 0; |
| 91 | int pos = 0; |
| 92 | char *name = NULL((void*)0); |
| 93 | int name_len = 0; |
| 94 | int name_pos = 0; |
| 95 | char secret[MAX_SECRET_LEN1000]; |
| 96 | char *saw_name = NULL((void*)0); |
| 97 | char *saw_secret = NULL((void*)0); |
| 98 | |
| 99 | if(verboseflag) |
| 100 | printf("parsing options: %s\n", data)__printf_chk (2 - 1, "parsing options: %s\n", data); |
| 101 | |
| 102 | do { |
| 103 | char * value = NULL((void*)0); |
| 104 | /* check if ends with trailing comma */ |
| 105 | if(*data == 0) |
| 106 | break; |
| 107 | next_keyword = strchr(data,',')(__extension__ (__builtin_constant_p (',') && !__builtin_constant_p (data) && (',') == '\0' ? (char *) __rawmemchr (data , ',') : __builtin_strchr (data, ','))); |
| 108 | |
| 109 | /* temporarily null terminate end of keyword=value pair */ |
| 110 | if(next_keyword) |
| 111 | *next_keyword++ = 0; |
| 112 | |
| 113 | /* temporarily null terminate keyword to make keyword and value distinct */ |
| 114 | if ((value = strchr(data, '=')(__extension__ (__builtin_constant_p ('=') && !__builtin_constant_p (data) && ('=') == '\0' ? (char *) __rawmemchr (data , '=') : __builtin_strchr (data, '=')))) != NULL((void*)0)) { |
| 115 | *value = '\0'; |
| 116 | value++; |
| 117 | } |
| 118 | |
| 119 | int skip = 1; |
| 120 | |
| 121 | if (strncmp(data, "ro", 2)(__extension__ (__builtin_constant_p (2) && ((__builtin_constant_p (data) && strlen (data) < ((size_t) (2))) || (__builtin_constant_p ("ro") && strlen ("ro") < ((size_t) (2)))) ? __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (data) && __builtin_constant_p ("ro") && (__s1_len = __builtin_strlen (data), __s2_len = __builtin_strlen ("ro"), (!((size_t)(const void *)((data) + 1) - (size_t)(const void *)(data) == 1) || __s1_len >= 4) && (!((size_t)(const void *)(("ro") + 1) - ( size_t)(const void *)("ro") == 1) || __s2_len >= 4)) ? __builtin_strcmp (data, "ro") : (__builtin_constant_p (data) && ((size_t )(const void *)((data) + 1) - (size_t)(const void *)(data) == 1) && (__s1_len = __builtin_strlen (data), __s1_len < 4) ? (__builtin_constant_p ("ro") && ((size_t)(const void *)(("ro") + 1) - (size_t)(const void *)("ro") == 1) ? __builtin_strcmp (data, "ro") : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) ("ro"); int __result = (((const unsigned char *) (const char *) (data))[0] - __s2[0 ]); if (__s1_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) (data))[1] - __s2[1 ]); if (__s1_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) (data))[2] - __s2[2 ]); if (__s1_len > 2 && __result == 0) __result = ( ((const unsigned char *) (const char *) (data))[3] - __s2[3]) ; } } __result; }))) : (__builtin_constant_p ("ro") && ((size_t)(const void *)(("ro") + 1) - (size_t)(const void *) ("ro") == 1) && (__s2_len = __builtin_strlen ("ro"), __s2_len < 4) ? (__builtin_constant_p (data) && ((size_t)( const void *)((data) + 1) - (size_t)(const void *)(data) == 1 ) ? __builtin_strcmp (data, "ro") : (- (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (data); int __result = (((const unsigned char *) (const char *) ("ro"))[0] - __s2[0]); if (__s2_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) ( "ro"))[1] - __s2[1]); if (__s2_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) ( "ro"))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ("ro" ))[3] - __s2[3]); } } __result; })))) : __builtin_strcmp (data , "ro")))); }) : strncmp (data, "ro", 2))) == 0) { |
| 122 | *filesys_flags |= MS_RDONLYMS_RDONLY; |
| 123 | } else if (strncmp(data, "rw", 2)(__extension__ (__builtin_constant_p (2) && ((__builtin_constant_p (data) && strlen (data) < ((size_t) (2))) || (__builtin_constant_p ("rw") && strlen ("rw") < ((size_t) (2)))) ? __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (data) && __builtin_constant_p ("rw") && (__s1_len = __builtin_strlen (data), __s2_len = __builtin_strlen ("rw"), (!((size_t)(const void *)((data) + 1) - (size_t)(const void *)(data) == 1) || __s1_len >= 4) && (!((size_t)(const void *)(("rw") + 1) - ( size_t)(const void *)("rw") == 1) || __s2_len >= 4)) ? __builtin_strcmp (data, "rw") : (__builtin_constant_p (data) && ((size_t )(const void *)((data) + 1) - (size_t)(const void *)(data) == 1) && (__s1_len = __builtin_strlen (data), __s1_len < 4) ? (__builtin_constant_p ("rw") && ((size_t)(const void *)(("rw") + 1) - (size_t)(const void *)("rw") == 1) ? __builtin_strcmp (data, "rw") : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) ("rw"); int __result = (((const unsigned char *) (const char *) (data))[0] - __s2[0 ]); if (__s1_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) (data))[1] - __s2[1 ]); if (__s1_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) (data))[2] - __s2[2 ]); if (__s1_len > 2 && __result == 0) __result = ( ((const unsigned char *) (const char *) (data))[3] - __s2[3]) ; } } __result; }))) : (__builtin_constant_p ("rw") && ((size_t)(const void *)(("rw") + 1) - (size_t)(const void *) ("rw") == 1) && (__s2_len = __builtin_strlen ("rw"), __s2_len < 4) ? (__builtin_constant_p (data) && ((size_t)( const void *)((data) + 1) - (size_t)(const void *)(data) == 1 ) ? __builtin_strcmp (data, "rw") : (- (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (data); int __result = (((const unsigned char *) (const char *) ("rw"))[0] - __s2[0]); if (__s2_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) ( "rw"))[1] - __s2[1]); if (__s2_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) ( "rw"))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ("rw" ))[3] - __s2[3]); } } __result; })))) : __builtin_strcmp (data , "rw")))); }) : strncmp (data, "rw", 2))) == 0) { |
| 124 | *filesys_flags &= ~MS_RDONLYMS_RDONLY; |
| 125 | } else if (strncmp(data, "nosuid", 6)(__extension__ (__builtin_constant_p (6) && ((__builtin_constant_p (data) && strlen (data) < ((size_t) (6))) || (__builtin_constant_p ("nosuid") && strlen ("nosuid") < ((size_t) (6))) ) ? __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (data) && __builtin_constant_p ("nosuid") && (__s1_len = __builtin_strlen (data), __s2_len = __builtin_strlen ("nosuid"), (!((size_t)(const void *)((data) + 1) - (size_t) (const void *)(data) == 1) || __s1_len >= 4) && (! ((size_t)(const void *)(("nosuid") + 1) - (size_t)(const void *)("nosuid") == 1) || __s2_len >= 4)) ? __builtin_strcmp ( data, "nosuid") : (__builtin_constant_p (data) && ((size_t )(const void *)((data) + 1) - (size_t)(const void *)(data) == 1) && (__s1_len = __builtin_strlen (data), __s1_len < 4) ? (__builtin_constant_p ("nosuid") && ((size_t)(const void *)(("nosuid") + 1) - (size_t)(const void *)("nosuid") == 1) ? __builtin_strcmp (data, "nosuid") : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) ("nosuid"); int __result = (((const unsigned char *) (const char *) (data))[0] - __s2[0]); if (__s1_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) ( data))[1] - __s2[1]); if (__s1_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) ( data))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) (data ))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p ( "nosuid") && ((size_t)(const void *)(("nosuid") + 1) - (size_t)(const void *)("nosuid") == 1) && (__s2_len = __builtin_strlen ("nosuid"), __s2_len < 4) ? (__builtin_constant_p (data) && ((size_t)(const void *)((data) + 1) - (size_t )(const void *)(data) == 1) ? __builtin_strcmp (data, "nosuid" ) : (- (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (data); int __result = (((const unsigned char *) (const char *) ("nosuid"))[0] - __s2[0]); if (__s2_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) ("nosuid"))[1] - __s2[1]); if (__s2_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) ("nosuid"))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ("nosuid"))[3] - __s2[3]); } } __result ; })))) : __builtin_strcmp (data, "nosuid")))); }) : strncmp ( data, "nosuid", 6))) == 0) { |
| 126 | *filesys_flags |= MS_NOSUIDMS_NOSUID; |
| 127 | } else if (strncmp(data, "suid", 4)(__extension__ (__builtin_constant_p (4) && ((__builtin_constant_p (data) && strlen (data) < ((size_t) (4))) || (__builtin_constant_p ("suid") && strlen ("suid") < ((size_t) (4)))) ? __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (data) && __builtin_constant_p ("suid") && (__s1_len = __builtin_strlen (data), __s2_len = __builtin_strlen ("suid"), (!((size_t)(const void *)((data) + 1) - (size_t)(const void *)(data) == 1) || __s1_len >= 4) && (!((size_t)(const void *)(("suid") + 1) - (size_t)(const void *)("suid") == 1) || __s2_len >= 4)) ? __builtin_strcmp (data, "suid") : (__builtin_constant_p (data ) && ((size_t)(const void *)((data) + 1) - (size_t)(const void *)(data) == 1) && (__s1_len = __builtin_strlen ( data), __s1_len < 4) ? (__builtin_constant_p ("suid") && ((size_t)(const void *)(("suid") + 1) - (size_t)(const void * )("suid") == 1) ? __builtin_strcmp (data, "suid") : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) ("suid"); int __result = (((const unsigned char *) ( const char *) (data))[0] - __s2[0]); if (__s1_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) (data))[1] - __s2[1]); if (__s1_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) (data))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) (data))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p ("suid") && ((size_t)(const void *)(("suid") + 1) - ( size_t)(const void *)("suid") == 1) && (__s2_len = __builtin_strlen ("suid"), __s2_len < 4) ? (__builtin_constant_p (data) && ((size_t)(const void *)((data) + 1) - (size_t)(const void *) (data) == 1) ? __builtin_strcmp (data, "suid") : (- (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (data); int __result = (((const unsigned char *) (const char *) ("suid"))[0] - __s2[0]); if (__s2_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) ("suid"))[1] - __s2[1]); if (__s2_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) ("suid"))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ("suid"))[3] - __s2[3]); } } __result; })))) : __builtin_strcmp (data, "suid")))); }) : strncmp (data, "suid", 4))) == 0) { |
| 128 | *filesys_flags &= ~MS_NOSUIDMS_NOSUID; |
| 129 | } else if (strncmp(data, "dev", 3)(__extension__ (__builtin_constant_p (3) && ((__builtin_constant_p (data) && strlen (data) < ((size_t) (3))) || (__builtin_constant_p ("dev") && strlen ("dev") < ((size_t) (3)))) ? __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (data) && __builtin_constant_p ("dev") && (__s1_len = __builtin_strlen (data), __s2_len = __builtin_strlen ("dev"), (!((size_t)(const void *)((data) + 1) - (size_t)(const void *)(data) == 1) || __s1_len >= 4) && (!((size_t)(const void *)(("dev") + 1) - (size_t)(const void *)("dev") == 1) || __s2_len >= 4)) ? __builtin_strcmp (data, "dev") : (__builtin_constant_p (data) && ((size_t )(const void *)((data) + 1) - (size_t)(const void *)(data) == 1) && (__s1_len = __builtin_strlen (data), __s1_len < 4) ? (__builtin_constant_p ("dev") && ((size_t)(const void *)(("dev") + 1) - (size_t)(const void *)("dev") == 1) ? __builtin_strcmp (data, "dev") : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) ("dev"); int __result = (((const unsigned char *) (const char *) (data ))[0] - __s2[0]); if (__s1_len > 0 && __result == 0 ) { __result = (((const unsigned char *) (const char *) (data ))[1] - __s2[1]); if (__s1_len > 1 && __result == 0 ) { __result = (((const unsigned char *) (const char *) (data ))[2] - __s2[2]); if (__s1_len > 2 && __result == 0 ) __result = (((const unsigned char *) (const char *) (data)) [3] - __s2[3]); } } __result; }))) : (__builtin_constant_p ("dev" ) && ((size_t)(const void *)(("dev") + 1) - (size_t)( const void *)("dev") == 1) && (__s2_len = __builtin_strlen ("dev"), __s2_len < 4) ? (__builtin_constant_p (data) && ((size_t)(const void *)((data) + 1) - (size_t)(const void *) (data) == 1) ? __builtin_strcmp (data, "dev") : (- (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (data); int __result = (((const unsigned char *) (const char *) ("dev"))[0] - __s2[0]); if (__s2_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) ("dev"))[1] - __s2[1]); if (__s2_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) ("dev"))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ("dev"))[3] - __s2[3]); } } __result; })))) : __builtin_strcmp (data, "dev")))); }) : strncmp (data, "dev", 3))) == 0) { |
| 130 | *filesys_flags &= ~MS_NODEVMS_NODEV; |
| 131 | } else if (strncmp(data, "nodev", 5)(__extension__ (__builtin_constant_p (5) && ((__builtin_constant_p (data) && strlen (data) < ((size_t) (5))) || (__builtin_constant_p ("nodev") && strlen ("nodev") < ((size_t) (5)))) ? __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (data) && __builtin_constant_p ("nodev") && ( __s1_len = __builtin_strlen (data), __s2_len = __builtin_strlen ("nodev"), (!((size_t)(const void *)((data) + 1) - (size_t)( const void *)(data) == 1) || __s1_len >= 4) && (!( (size_t)(const void *)(("nodev") + 1) - (size_t)(const void * )("nodev") == 1) || __s2_len >= 4)) ? __builtin_strcmp (data , "nodev") : (__builtin_constant_p (data) && ((size_t )(const void *)((data) + 1) - (size_t)(const void *)(data) == 1) && (__s1_len = __builtin_strlen (data), __s1_len < 4) ? (__builtin_constant_p ("nodev") && ((size_t)(const void *)(("nodev") + 1) - (size_t)(const void *)("nodev") == 1 ) ? __builtin_strcmp (data, "nodev") : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) ("nodev"); int __result = (((const unsigned char *) (const char *) (data))[0] - __s2[0]); if (__s1_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) ( data))[1] - __s2[1]); if (__s1_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) ( data))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) (data ))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p ( "nodev") && ((size_t)(const void *)(("nodev") + 1) - ( size_t)(const void *)("nodev") == 1) && (__s2_len = __builtin_strlen ("nodev"), __s2_len < 4) ? (__builtin_constant_p (data) && ((size_t)(const void *)((data) + 1) - (size_t)(const void *) (data) == 1) ? __builtin_strcmp (data, "nodev") : (- (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (data); int __result = (((const unsigned char *) (const char *) ("nodev"))[0] - __s2[0]); if (__s2_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) ("nodev"))[1] - __s2[1]); if (__s2_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) ("nodev"))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ("nodev"))[3] - __s2[3]); } } __result; })))) : __builtin_strcmp (data, "nodev")))); }) : strncmp (data, "nodev", 5))) == 0) { |
| 132 | *filesys_flags |= MS_NODEVMS_NODEV; |
| 133 | } else if (strncmp(data, "noexec", 6)(__extension__ (__builtin_constant_p (6) && ((__builtin_constant_p (data) && strlen (data) < ((size_t) (6))) || (__builtin_constant_p ("noexec") && strlen ("noexec") < ((size_t) (6))) ) ? __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (data) && __builtin_constant_p ("noexec") && (__s1_len = __builtin_strlen (data), __s2_len = __builtin_strlen ("noexec"), (!((size_t)(const void *)((data) + 1) - (size_t) (const void *)(data) == 1) || __s1_len >= 4) && (! ((size_t)(const void *)(("noexec") + 1) - (size_t)(const void *)("noexec") == 1) || __s2_len >= 4)) ? __builtin_strcmp ( data, "noexec") : (__builtin_constant_p (data) && ((size_t )(const void *)((data) + 1) - (size_t)(const void *)(data) == 1) && (__s1_len = __builtin_strlen (data), __s1_len < 4) ? (__builtin_constant_p ("noexec") && ((size_t)(const void *)(("noexec") + 1) - (size_t)(const void *)("noexec") == 1) ? __builtin_strcmp (data, "noexec") : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) ("noexec"); int __result = (((const unsigned char *) (const char *) (data))[0] - __s2[0]); if (__s1_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) ( data))[1] - __s2[1]); if (__s1_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) ( data))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) (data ))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p ( "noexec") && ((size_t)(const void *)(("noexec") + 1) - (size_t)(const void *)("noexec") == 1) && (__s2_len = __builtin_strlen ("noexec"), __s2_len < 4) ? (__builtin_constant_p (data) && ((size_t)(const void *)((data) + 1) - (size_t )(const void *)(data) == 1) ? __builtin_strcmp (data, "noexec" ) : (- (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (data); int __result = (((const unsigned char *) (const char *) ("noexec"))[0] - __s2[0]); if (__s2_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) ("noexec"))[1] - __s2[1]); if (__s2_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) ("noexec"))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ("noexec"))[3] - __s2[3]); } } __result ; })))) : __builtin_strcmp (data, "noexec")))); }) : strncmp ( data, "noexec", 6))) == 0) { |
| 134 | *filesys_flags |= MS_NOEXECMS_NOEXEC; |
| 135 | } else if (strncmp(data, "exec", 4)(__extension__ (__builtin_constant_p (4) && ((__builtin_constant_p (data) && strlen (data) < ((size_t) (4))) || (__builtin_constant_p ("exec") && strlen ("exec") < ((size_t) (4)))) ? __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (data) && __builtin_constant_p ("exec") && (__s1_len = __builtin_strlen (data), __s2_len = __builtin_strlen ("exec"), (!((size_t)(const void *)((data) + 1) - (size_t)(const void *)(data) == 1) || __s1_len >= 4) && (!((size_t)(const void *)(("exec") + 1) - (size_t)(const void *)("exec") == 1) || __s2_len >= 4)) ? __builtin_strcmp (data, "exec") : (__builtin_constant_p (data ) && ((size_t)(const void *)((data) + 1) - (size_t)(const void *)(data) == 1) && (__s1_len = __builtin_strlen ( data), __s1_len < 4) ? (__builtin_constant_p ("exec") && ((size_t)(const void *)(("exec") + 1) - (size_t)(const void * )("exec") == 1) ? __builtin_strcmp (data, "exec") : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) ("exec"); int __result = (((const unsigned char *) ( const char *) (data))[0] - __s2[0]); if (__s1_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) (data))[1] - __s2[1]); if (__s1_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) (data))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) (data))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p ("exec") && ((size_t)(const void *)(("exec") + 1) - ( size_t)(const void *)("exec") == 1) && (__s2_len = __builtin_strlen ("exec"), __s2_len < 4) ? (__builtin_constant_p (data) && ((size_t)(const void *)((data) + 1) - (size_t)(const void *) (data) == 1) ? __builtin_strcmp (data, "exec") : (- (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (data); int __result = (((const unsigned char *) (const char *) ("exec"))[0] - __s2[0]); if (__s2_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) ("exec"))[1] - __s2[1]); if (__s2_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) ("exec"))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ("exec"))[3] - __s2[3]); } } __result; })))) : __builtin_strcmp (data, "exec")))); }) : strncmp (data, "exec", 4))) == 0) { |
| 136 | *filesys_flags &= ~MS_NOEXECMS_NOEXEC; |
| 137 | } else if (strncmp(data, "sync", 4)(__extension__ (__builtin_constant_p (4) && ((__builtin_constant_p (data) && strlen (data) < ((size_t) (4))) || (__builtin_constant_p ("sync") && strlen ("sync") < ((size_t) (4)))) ? __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (data) && __builtin_constant_p ("sync") && (__s1_len = __builtin_strlen (data), __s2_len = __builtin_strlen ("sync"), (!((size_t)(const void *)((data) + 1) - (size_t)(const void *)(data) == 1) || __s1_len >= 4) && (!((size_t)(const void *)(("sync") + 1) - (size_t)(const void *)("sync") == 1) || __s2_len >= 4)) ? __builtin_strcmp (data, "sync") : (__builtin_constant_p (data ) && ((size_t)(const void *)((data) + 1) - (size_t)(const void *)(data) == 1) && (__s1_len = __builtin_strlen ( data), __s1_len < 4) ? (__builtin_constant_p ("sync") && ((size_t)(const void *)(("sync") + 1) - (size_t)(const void * )("sync") == 1) ? __builtin_strcmp (data, "sync") : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) ("sync"); int __result = (((const unsigned char *) ( const char *) (data))[0] - __s2[0]); if (__s1_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) (data))[1] - __s2[1]); if (__s1_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) (data))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) (data))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p ("sync") && ((size_t)(const void *)(("sync") + 1) - ( size_t)(const void *)("sync") == 1) && (__s2_len = __builtin_strlen ("sync"), __s2_len < 4) ? (__builtin_constant_p (data) && ((size_t)(const void *)((data) + 1) - (size_t)(const void *) (data) == 1) ? __builtin_strcmp (data, "sync") : (- (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (data); int __result = (((const unsigned char *) (const char *) ("sync"))[0] - __s2[0]); if (__s2_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) ("sync"))[1] - __s2[1]); if (__s2_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) ("sync"))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ("sync"))[3] - __s2[3]); } } __result; })))) : __builtin_strcmp (data, "sync")))); }) : strncmp (data, "sync", 4))) == 0) { |
| 138 | *filesys_flags |= MS_SYNCHRONOUSMS_SYNCHRONOUS; |
| 139 | } else if (strncmp(data, "remount", 7)(__extension__ (__builtin_constant_p (7) && ((__builtin_constant_p (data) && strlen (data) < ((size_t) (7))) || (__builtin_constant_p ("remount") && strlen ("remount") < ((size_t) (7) ))) ? __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (data) && __builtin_constant_p ("remount") && (__s1_len = __builtin_strlen (data), __s2_len = __builtin_strlen ("remount"), (!((size_t)(const void *)((data) + 1) - (size_t )(const void *)(data) == 1) || __s1_len >= 4) && ( !((size_t)(const void *)(("remount") + 1) - (size_t)(const void *)("remount") == 1) || __s2_len >= 4)) ? __builtin_strcmp (data, "remount") : (__builtin_constant_p (data) && ( (size_t)(const void *)((data) + 1) - (size_t)(const void *)(data ) == 1) && (__s1_len = __builtin_strlen (data), __s1_len < 4) ? (__builtin_constant_p ("remount") && ((size_t )(const void *)(("remount") + 1) - (size_t)(const void *)("remount" ) == 1) ? __builtin_strcmp (data, "remount") : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) ("remount"); int __result = (((const unsigned char * ) (const char *) (data))[0] - __s2[0]); if (__s1_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) (data))[1] - __s2[1]); if (__s1_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) (data))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) (data))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p ("remount") && ((size_t)(const void *)(("remount") + 1) - (size_t)(const void *)("remount") == 1) && (__s2_len = __builtin_strlen ("remount"), __s2_len < 4) ? (__builtin_constant_p (data) && ((size_t)(const void *)((data) + 1) - (size_t )(const void *)(data) == 1) ? __builtin_strcmp (data, "remount" ) : (- (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (data); int __result = (((const unsigned char *) (const char *) ("remount"))[0] - __s2[0]); if (__s2_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) ("remount"))[1] - __s2[1]); if (__s2_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) ("remount"))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ("remount"))[3] - __s2[3]); } } __result ; })))) : __builtin_strcmp (data, "remount")))); }) : strncmp (data, "remount", 7))) == 0) { |
| 140 | *filesys_flags |= MS_REMOUNTMS_REMOUNT; |
| 141 | } else if (strncmp(data, "mandlock", 8)(__extension__ (__builtin_constant_p (8) && ((__builtin_constant_p (data) && strlen (data) < ((size_t) (8))) || (__builtin_constant_p ("mandlock") && strlen ("mandlock") < ((size_t) ( 8)))) ? __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (data) && __builtin_constant_p ("mandlock") && (__s1_len = __builtin_strlen (data), __s2_len = __builtin_strlen ("mandlock"), (!((size_t)(const void *)((data) + 1) - (size_t )(const void *)(data) == 1) || __s1_len >= 4) && ( !((size_t)(const void *)(("mandlock") + 1) - (size_t)(const void *)("mandlock") == 1) || __s2_len >= 4)) ? __builtin_strcmp (data, "mandlock") : (__builtin_constant_p (data) && ((size_t)(const void *)((data) + 1) - (size_t)(const void *) (data) == 1) && (__s1_len = __builtin_strlen (data), __s1_len < 4) ? (__builtin_constant_p ("mandlock") && ((size_t )(const void *)(("mandlock") + 1) - (size_t)(const void *)("mandlock" ) == 1) ? __builtin_strcmp (data, "mandlock") : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) ("mandlock"); int __result = (((const unsigned char * ) (const char *) (data))[0] - __s2[0]); if (__s1_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) (data))[1] - __s2[1]); if (__s1_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) (data))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) (data))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p ("mandlock") && ((size_t)(const void *)(("mandlock") + 1) - (size_t)(const void *)("mandlock") == 1) && ( __s2_len = __builtin_strlen ("mandlock"), __s2_len < 4) ? ( __builtin_constant_p (data) && ((size_t)(const void * )((data) + 1) - (size_t)(const void *)(data) == 1) ? __builtin_strcmp (data, "mandlock") : (- (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (data); int __result = (((const unsigned char *) (const char *) ("mandlock"))[0] - __s2[0]); if (__s2_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) ("mandlock"))[1] - __s2[1]); if (__s2_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) ("mandlock"))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ("mandlock"))[3] - __s2[3]); } } __result; })))) : __builtin_strcmp (data, "mandlock" )))); }) : strncmp (data, "mandlock", 8))) == 0) { |
| 142 | *filesys_flags |= MS_MANDLOCKMS_MANDLOCK; |
| 143 | } else if ((strncmp(data, "nobrl", 5)(__extension__ (__builtin_constant_p (5) && ((__builtin_constant_p (data) && strlen (data) < ((size_t) (5))) || (__builtin_constant_p ("nobrl") && strlen ("nobrl") < ((size_t) (5)))) ? __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (data) && __builtin_constant_p ("nobrl") && ( __s1_len = __builtin_strlen (data), __s2_len = __builtin_strlen ("nobrl"), (!((size_t)(const void *)((data) + 1) - (size_t)( const void *)(data) == 1) || __s1_len >= 4) && (!( (size_t)(const void *)(("nobrl") + 1) - (size_t)(const void * )("nobrl") == 1) || __s2_len >= 4)) ? __builtin_strcmp (data , "nobrl") : (__builtin_constant_p (data) && ((size_t )(const void *)((data) + 1) - (size_t)(const void *)(data) == 1) && (__s1_len = __builtin_strlen (data), __s1_len < 4) ? (__builtin_constant_p ("nobrl") && ((size_t)(const void *)(("nobrl") + 1) - (size_t)(const void *)("nobrl") == 1 ) ? __builtin_strcmp (data, "nobrl") : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) ("nobrl"); int __result = (((const unsigned char *) (const char *) (data))[0] - __s2[0]); if (__s1_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) ( data))[1] - __s2[1]); if (__s1_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) ( data))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) (data ))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p ( "nobrl") && ((size_t)(const void *)(("nobrl") + 1) - ( size_t)(const void *)("nobrl") == 1) && (__s2_len = __builtin_strlen ("nobrl"), __s2_len < 4) ? (__builtin_constant_p (data) && ((size_t)(const void *)((data) + 1) - (size_t)(const void *) (data) == 1) ? __builtin_strcmp (data, "nobrl") : (- (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (data); int __result = (((const unsigned char *) (const char *) ("nobrl"))[0] - __s2[0]); if (__s2_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) ("nobrl"))[1] - __s2[1]); if (__s2_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) ("nobrl"))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ("nobrl"))[3] - __s2[3]); } } __result; })))) : __builtin_strcmp (data, "nobrl")))); }) : strncmp (data, "nobrl", 5))) == 0) || |
| 144 | (strncmp(data, "nolock", 6)(__extension__ (__builtin_constant_p (6) && ((__builtin_constant_p (data) && strlen (data) < ((size_t) (6))) || (__builtin_constant_p ("nolock") && strlen ("nolock") < ((size_t) (6))) ) ? __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (data) && __builtin_constant_p ("nolock") && (__s1_len = __builtin_strlen (data), __s2_len = __builtin_strlen ("nolock"), (!((size_t)(const void *)((data) + 1) - (size_t) (const void *)(data) == 1) || __s1_len >= 4) && (! ((size_t)(const void *)(("nolock") + 1) - (size_t)(const void *)("nolock") == 1) || __s2_len >= 4)) ? __builtin_strcmp ( data, "nolock") : (__builtin_constant_p (data) && ((size_t )(const void *)((data) + 1) - (size_t)(const void *)(data) == 1) && (__s1_len = __builtin_strlen (data), __s1_len < 4) ? (__builtin_constant_p ("nolock") && ((size_t)(const void *)(("nolock") + 1) - (size_t)(const void *)("nolock") == 1) ? __builtin_strcmp (data, "nolock") : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) ("nolock"); int __result = (((const unsigned char *) (const char *) (data))[0] - __s2[0]); if (__s1_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) ( data))[1] - __s2[1]); if (__s1_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) ( data))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) (data ))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p ( "nolock") && ((size_t)(const void *)(("nolock") + 1) - (size_t)(const void *)("nolock") == 1) && (__s2_len = __builtin_strlen ("nolock"), __s2_len < 4) ? (__builtin_constant_p (data) && ((size_t)(const void *)((data) + 1) - (size_t )(const void *)(data) == 1) ? __builtin_strcmp (data, "nolock" ) : (- (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (data); int __result = (((const unsigned char *) (const char *) ("nolock"))[0] - __s2[0]); if (__s2_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) ("nolock"))[1] - __s2[1]); if (__s2_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) ("nolock"))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ("nolock"))[3] - __s2[3]); } } __result ; })))) : __builtin_strcmp (data, "nolock")))); }) : strncmp ( data, "nolock", 6))) == 0)) { |
| 145 | *filesys_flags &= ~MS_MANDLOCKMS_MANDLOCK; |
| 146 | } else if (strncmp(data, "noatime", 7)(__extension__ (__builtin_constant_p (7) && ((__builtin_constant_p (data) && strlen (data) < ((size_t) (7))) || (__builtin_constant_p ("noatime") && strlen ("noatime") < ((size_t) (7) ))) ? __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (data) && __builtin_constant_p ("noatime") && (__s1_len = __builtin_strlen (data), __s2_len = __builtin_strlen ("noatime"), (!((size_t)(const void *)((data) + 1) - (size_t )(const void *)(data) == 1) || __s1_len >= 4) && ( !((size_t)(const void *)(("noatime") + 1) - (size_t)(const void *)("noatime") == 1) || __s2_len >= 4)) ? __builtin_strcmp (data, "noatime") : (__builtin_constant_p (data) && ( (size_t)(const void *)((data) + 1) - (size_t)(const void *)(data ) == 1) && (__s1_len = __builtin_strlen (data), __s1_len < 4) ? (__builtin_constant_p ("noatime") && ((size_t )(const void *)(("noatime") + 1) - (size_t)(const void *)("noatime" ) == 1) ? __builtin_strcmp (data, "noatime") : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) ("noatime"); int __result = (((const unsigned char * ) (const char *) (data))[0] - __s2[0]); if (__s1_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) (data))[1] - __s2[1]); if (__s1_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) (data))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) (data))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p ("noatime") && ((size_t)(const void *)(("noatime") + 1) - (size_t)(const void *)("noatime") == 1) && (__s2_len = __builtin_strlen ("noatime"), __s2_len < 4) ? (__builtin_constant_p (data) && ((size_t)(const void *)((data) + 1) - (size_t )(const void *)(data) == 1) ? __builtin_strcmp (data, "noatime" ) : (- (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (data); int __result = (((const unsigned char *) (const char *) ("noatime"))[0] - __s2[0]); if (__s2_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) ("noatime"))[1] - __s2[1]); if (__s2_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) ("noatime"))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ("noatime"))[3] - __s2[3]); } } __result ; })))) : __builtin_strcmp (data, "noatime")))); }) : strncmp (data, "noatime", 7))) == 0) { |
| 147 | *filesys_flags |= MS_NOATIMEMS_NOATIME; |
| 148 | } else if (strncmp(data, "nodiratime", 10)(__extension__ (__builtin_constant_p (10) && ((__builtin_constant_p (data) && strlen (data) < ((size_t) (10))) || (__builtin_constant_p ("nodiratime") && strlen ("nodiratime") < ((size_t ) (10)))) ? __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (data) && __builtin_constant_p ("nodiratime") && (__s1_len = __builtin_strlen (data), __s2_len = __builtin_strlen ("nodiratime"), (!((size_t)(const void *)((data) + 1) - (size_t )(const void *)(data) == 1) || __s1_len >= 4) && ( !((size_t)(const void *)(("nodiratime") + 1) - (size_t)(const void *)("nodiratime") == 1) || __s2_len >= 4)) ? __builtin_strcmp (data, "nodiratime") : (__builtin_constant_p (data) && ((size_t)(const void *)((data) + 1) - (size_t)(const void *) (data) == 1) && (__s1_len = __builtin_strlen (data), __s1_len < 4) ? (__builtin_constant_p ("nodiratime") && (( size_t)(const void *)(("nodiratime") + 1) - (size_t)(const void *)("nodiratime") == 1) ? __builtin_strcmp (data, "nodiratime" ) : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) ("nodiratime"); int __result = (((const unsigned char *) (const char *) (data))[0] - __s2[0]); if (__s1_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) (data))[1] - __s2[1]); if (__s1_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) (data))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result = (((const unsigned char * ) (const char *) (data))[3] - __s2[3]); } } __result; }))) : ( __builtin_constant_p ("nodiratime") && ((size_t)(const void *)(("nodiratime") + 1) - (size_t)(const void *)("nodiratime" ) == 1) && (__s2_len = __builtin_strlen ("nodiratime" ), __s2_len < 4) ? (__builtin_constant_p (data) && ((size_t)(const void *)((data) + 1) - (size_t)(const void *) (data) == 1) ? __builtin_strcmp (data, "nodiratime") : (- (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (data); int __result = (((const unsigned char *) (const char *) ("nodiratime"))[0] - __s2[0]); if (__s2_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) ("nodiratime"))[1] - __s2[1]); if (__s2_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) ("nodiratime"))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ("nodiratime"))[3] - __s2[3]); } } __result; })))) : __builtin_strcmp (data, "nodiratime")))); }) : strncmp (data, "nodiratime", 10 ))) == 0) { |
| 149 | *filesys_flags |= MS_NODIRATIMEMS_NODIRATIME; |
| 150 | } else if (strncmp(data, "relatime", 8)(__extension__ (__builtin_constant_p (8) && ((__builtin_constant_p (data) && strlen (data) < ((size_t) (8))) || (__builtin_constant_p ("relatime") && strlen ("relatime") < ((size_t) ( 8)))) ? __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (data) && __builtin_constant_p ("relatime") && (__s1_len = __builtin_strlen (data), __s2_len = __builtin_strlen ("relatime"), (!((size_t)(const void *)((data) + 1) - (size_t )(const void *)(data) == 1) || __s1_len >= 4) && ( !((size_t)(const void *)(("relatime") + 1) - (size_t)(const void *)("relatime") == 1) || __s2_len >= 4)) ? __builtin_strcmp (data, "relatime") : (__builtin_constant_p (data) && ((size_t)(const void *)((data) + 1) - (size_t)(const void *) (data) == 1) && (__s1_len = __builtin_strlen (data), __s1_len < 4) ? (__builtin_constant_p ("relatime") && ((size_t )(const void *)(("relatime") + 1) - (size_t)(const void *)("relatime" ) == 1) ? __builtin_strcmp (data, "relatime") : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) ("relatime"); int __result = (((const unsigned char * ) (const char *) (data))[0] - __s2[0]); if (__s1_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) (data))[1] - __s2[1]); if (__s1_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) (data))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) (data))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p ("relatime") && ((size_t)(const void *)(("relatime") + 1) - (size_t)(const void *)("relatime") == 1) && ( __s2_len = __builtin_strlen ("relatime"), __s2_len < 4) ? ( __builtin_constant_p (data) && ((size_t)(const void * )((data) + 1) - (size_t)(const void *)(data) == 1) ? __builtin_strcmp (data, "relatime") : (- (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (data); int __result = (((const unsigned char *) (const char *) ("relatime"))[0] - __s2[0]); if (__s2_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) ("relatime"))[1] - __s2[1]); if (__s2_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) ("relatime"))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ("relatime"))[3] - __s2[3]); } } __result; })))) : __builtin_strcmp (data, "relatime" )))); }) : strncmp (data, "relatime", 8))) == 0) { |
| 151 | *filesys_flags |= MS_RELATIMEMS_RELATIME; |
| 152 | |
| 153 | } else if (strncmp(data, "noauto", 6)(__extension__ (__builtin_constant_p (6) && ((__builtin_constant_p (data) && strlen (data) < ((size_t) (6))) || (__builtin_constant_p ("noauto") && strlen ("noauto") < ((size_t) (6))) ) ? __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (data) && __builtin_constant_p ("noauto") && (__s1_len = __builtin_strlen (data), __s2_len = __builtin_strlen ("noauto"), (!((size_t)(const void *)((data) + 1) - (size_t) (const void *)(data) == 1) || __s1_len >= 4) && (! ((size_t)(const void *)(("noauto") + 1) - (size_t)(const void *)("noauto") == 1) || __s2_len >= 4)) ? __builtin_strcmp ( data, "noauto") : (__builtin_constant_p (data) && ((size_t )(const void *)((data) + 1) - (size_t)(const void *)(data) == 1) && (__s1_len = __builtin_strlen (data), __s1_len < 4) ? (__builtin_constant_p ("noauto") && ((size_t)(const void *)(("noauto") + 1) - (size_t)(const void *)("noauto") == 1) ? __builtin_strcmp (data, "noauto") : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) ("noauto"); int __result = (((const unsigned char *) (const char *) (data))[0] - __s2[0]); if (__s1_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) ( data))[1] - __s2[1]); if (__s1_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) ( data))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) (data ))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p ( "noauto") && ((size_t)(const void *)(("noauto") + 1) - (size_t)(const void *)("noauto") == 1) && (__s2_len = __builtin_strlen ("noauto"), __s2_len < 4) ? (__builtin_constant_p (data) && ((size_t)(const void *)((data) + 1) - (size_t )(const void *)(data) == 1) ? __builtin_strcmp (data, "noauto" ) : (- (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (data); int __result = (((const unsigned char *) (const char *) ("noauto"))[0] - __s2[0]); if (__s2_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) ("noauto"))[1] - __s2[1]); if (__s2_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) ("noauto"))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ("noauto"))[3] - __s2[3]); } } __result ; })))) : __builtin_strcmp (data, "noauto")))); }) : strncmp ( data, "noauto", 6))) == 0) { |
| 154 | skip = 1; /* ignore */ |
| 155 | } else if (strncmp(data, "_netdev", 7)(__extension__ (__builtin_constant_p (7) && ((__builtin_constant_p (data) && strlen (data) < ((size_t) (7))) || (__builtin_constant_p ("_netdev") && strlen ("_netdev") < ((size_t) (7) ))) ? __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (data) && __builtin_constant_p ("_netdev") && (__s1_len = __builtin_strlen (data), __s2_len = __builtin_strlen ("_netdev"), (!((size_t)(const void *)((data) + 1) - (size_t )(const void *)(data) == 1) || __s1_len >= 4) && ( !((size_t)(const void *)(("_netdev") + 1) - (size_t)(const void *)("_netdev") == 1) || __s2_len >= 4)) ? __builtin_strcmp (data, "_netdev") : (__builtin_constant_p (data) && ( (size_t)(const void *)((data) + 1) - (size_t)(const void *)(data ) == 1) && (__s1_len = __builtin_strlen (data), __s1_len < 4) ? (__builtin_constant_p ("_netdev") && ((size_t )(const void *)(("_netdev") + 1) - (size_t)(const void *)("_netdev" ) == 1) ? __builtin_strcmp (data, "_netdev") : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) ("_netdev"); int __result = (((const unsigned char * ) (const char *) (data))[0] - __s2[0]); if (__s1_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) (data))[1] - __s2[1]); if (__s1_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) (data))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) (data))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p ("_netdev") && ((size_t)(const void *)(("_netdev") + 1) - (size_t)(const void *)("_netdev") == 1) && (__s2_len = __builtin_strlen ("_netdev"), __s2_len < 4) ? (__builtin_constant_p (data) && ((size_t)(const void *)((data) + 1) - (size_t )(const void *)(data) == 1) ? __builtin_strcmp (data, "_netdev" ) : (- (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (data); int __result = (((const unsigned char *) (const char *) ("_netdev"))[0] - __s2[0]); if (__s2_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) ("_netdev"))[1] - __s2[1]); if (__s2_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) ("_netdev"))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ("_netdev"))[3] - __s2[3]); } } __result ; })))) : __builtin_strcmp (data, "_netdev")))); }) : strncmp (data, "_netdev", 7))) == 0) { |
| 156 | skip = 1; /* ignore */ |
| 157 | } else if (strncmp(data, "nofail", 6)(__extension__ (__builtin_constant_p (6) && ((__builtin_constant_p (data) && strlen (data) < ((size_t) (6))) || (__builtin_constant_p ("nofail") && strlen ("nofail") < ((size_t) (6))) ) ? __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (data) && __builtin_constant_p ("nofail") && (__s1_len = __builtin_strlen (data), __s2_len = __builtin_strlen ("nofail"), (!((size_t)(const void *)((data) + 1) - (size_t) (const void *)(data) == 1) || __s1_len >= 4) && (! ((size_t)(const void *)(("nofail") + 1) - (size_t)(const void *)("nofail") == 1) || __s2_len >= 4)) ? __builtin_strcmp ( data, "nofail") : (__builtin_constant_p (data) && ((size_t )(const void *)((data) + 1) - (size_t)(const void *)(data) == 1) && (__s1_len = __builtin_strlen (data), __s1_len < 4) ? (__builtin_constant_p ("nofail") && ((size_t)(const void *)(("nofail") + 1) - (size_t)(const void *)("nofail") == 1) ? __builtin_strcmp (data, "nofail") : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) ("nofail"); int __result = (((const unsigned char *) (const char *) (data))[0] - __s2[0]); if (__s1_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) ( data))[1] - __s2[1]); if (__s1_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) ( data))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) (data ))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p ( "nofail") && ((size_t)(const void *)(("nofail") + 1) - (size_t)(const void *)("nofail") == 1) && (__s2_len = __builtin_strlen ("nofail"), __s2_len < 4) ? (__builtin_constant_p (data) && ((size_t)(const void *)((data) + 1) - (size_t )(const void *)(data) == 1) ? __builtin_strcmp (data, "nofail" ) : (- (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (data); int __result = (((const unsigned char *) (const char *) ("nofail"))[0] - __s2[0]); if (__s2_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) ("nofail"))[1] - __s2[1]); if (__s2_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) ("nofail"))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ("nofail"))[3] - __s2[3]); } } __result ; })))) : __builtin_strcmp (data, "nofail")))); }) : strncmp ( data, "nofail", 6))) == 0) { |
| 158 | skip = 1; /* ignore */ |
| 159 | |
| 160 | } else if (strncmp(data, "secretfile", 10)(__extension__ (__builtin_constant_p (10) && ((__builtin_constant_p (data) && strlen (data) < ((size_t) (10))) || (__builtin_constant_p ("secretfile") && strlen ("secretfile") < ((size_t ) (10)))) ? __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (data) && __builtin_constant_p ("secretfile") && (__s1_len = __builtin_strlen (data), __s2_len = __builtin_strlen ("secretfile"), (!((size_t)(const void *)((data) + 1) - (size_t )(const void *)(data) == 1) || __s1_len >= 4) && ( !((size_t)(const void *)(("secretfile") + 1) - (size_t)(const void *)("secretfile") == 1) || __s2_len >= 4)) ? __builtin_strcmp (data, "secretfile") : (__builtin_constant_p (data) && ((size_t)(const void *)((data) + 1) - (size_t)(const void *) (data) == 1) && (__s1_len = __builtin_strlen (data), __s1_len < 4) ? (__builtin_constant_p ("secretfile") && (( size_t)(const void *)(("secretfile") + 1) - (size_t)(const void *)("secretfile") == 1) ? __builtin_strcmp (data, "secretfile" ) : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) ("secretfile"); int __result = (((const unsigned char *) (const char *) (data))[0] - __s2[0]); if (__s1_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) (data))[1] - __s2[1]); if (__s1_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) (data))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result = (((const unsigned char * ) (const char *) (data))[3] - __s2[3]); } } __result; }))) : ( __builtin_constant_p ("secretfile") && ((size_t)(const void *)(("secretfile") + 1) - (size_t)(const void *)("secretfile" ) == 1) && (__s2_len = __builtin_strlen ("secretfile" ), __s2_len < 4) ? (__builtin_constant_p (data) && ((size_t)(const void *)((data) + 1) - (size_t)(const void *) (data) == 1) ? __builtin_strcmp (data, "secretfile") : (- (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (data); int __result = (((const unsigned char *) (const char *) ("secretfile"))[0] - __s2[0]); if (__s2_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) ("secretfile"))[1] - __s2[1]); if (__s2_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) ("secretfile"))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ("secretfile"))[3] - __s2[3]); } } __result; })))) : __builtin_strcmp (data, "secretfile")))); }) : strncmp (data, "secretfile", 10 ))) == 0) { |
| 161 | if (!value || !*value) { |
| 162 | printf("keyword secretfile found, but no secret file specified\n")__printf_chk (2 - 1, "keyword secretfile found, but no secret file specified\n" ); |
| 163 | free(saw_name); |
| 164 | return NULL((void*)0); |
| 165 | } |
| 166 | |
| 167 | if (read_secret_from_file(value, secret, sizeof(secret)) < 0) { |
| 168 | printf("error reading secret file\n")__printf_chk (2 - 1, "error reading secret file\n"); |
| 169 | return NULL((void*)0); |
| 170 | } |
| 171 | |
| 172 | /* see comment for "secret" */ |
| 173 | saw_secret = secret; |
| 174 | skip = 1; |
| 175 | } else if (strncmp(data, "secret", 6)(__extension__ (__builtin_constant_p (6) && ((__builtin_constant_p (data) && strlen (data) < ((size_t) (6))) || (__builtin_constant_p ("secret") && strlen ("secret") < ((size_t) (6))) ) ? __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (data) && __builtin_constant_p ("secret") && (__s1_len = __builtin_strlen (data), __s2_len = __builtin_strlen ("secret"), (!((size_t)(const void *)((data) + 1) - (size_t) (const void *)(data) == 1) || __s1_len >= 4) && (! ((size_t)(const void *)(("secret") + 1) - (size_t)(const void *)("secret") == 1) || __s2_len >= 4)) ? __builtin_strcmp ( data, "secret") : (__builtin_constant_p (data) && ((size_t )(const void *)((data) + 1) - (size_t)(const void *)(data) == 1) && (__s1_len = __builtin_strlen (data), __s1_len < 4) ? (__builtin_constant_p ("secret") && ((size_t)(const void *)(("secret") + 1) - (size_t)(const void *)("secret") == 1) ? __builtin_strcmp (data, "secret") : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) ("secret"); int __result = (((const unsigned char *) (const char *) (data))[0] - __s2[0]); if (__s1_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) ( data))[1] - __s2[1]); if (__s1_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) ( data))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) (data ))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p ( "secret") && ((size_t)(const void *)(("secret") + 1) - (size_t)(const void *)("secret") == 1) && (__s2_len = __builtin_strlen ("secret"), __s2_len < 4) ? (__builtin_constant_p (data) && ((size_t)(const void *)((data) + 1) - (size_t )(const void *)(data) == 1) ? __builtin_strcmp (data, "secret" ) : (- (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (data); int __result = (((const unsigned char *) (const char *) ("secret"))[0] - __s2[0]); if (__s2_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) ("secret"))[1] - __s2[1]); if (__s2_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) ("secret"))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ("secret"))[3] - __s2[3]); } } __result ; })))) : __builtin_strcmp (data, "secret")))); }) : strncmp ( data, "secret", 6))) == 0) { |
| 176 | if (!value || !*value) { |
| 177 | printf("mount option secret requires a value.\n")__printf_chk (2 - 1, "mount option secret requires a value.\n" ); |
| 178 | free(saw_name); |
| 179 | return NULL((void*)0); |
| 180 | } |
| 181 | |
| 182 | /* secret is only added to kernel options as |
| 183 | backwards compatibility, if add_key doesn't |
| 184 | recognize our keytype; hence, it is skipped |
| 185 | here and appended to options on add_key |
| 186 | failure */ |
| 187 | size_t len = sizeof(secret); |
| 188 | strncpy(secret, value, len-1); |
| 189 | secret[len-1] = '\0'; |
| 190 | saw_secret = secret; |
| 191 | skip = 1; |
| 192 | } else if (strncmp(data, "name", 4)(__extension__ (__builtin_constant_p (4) && ((__builtin_constant_p (data) && strlen (data) < ((size_t) (4))) || (__builtin_constant_p ("name") && strlen ("name") < ((size_t) (4)))) ? __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (data) && __builtin_constant_p ("name") && (__s1_len = __builtin_strlen (data), __s2_len = __builtin_strlen ("name"), (!((size_t)(const void *)((data) + 1) - (size_t)(const void *)(data) == 1) || __s1_len >= 4) && (!((size_t)(const void *)(("name") + 1) - (size_t)(const void *)("name") == 1) || __s2_len >= 4)) ? __builtin_strcmp (data, "name") : (__builtin_constant_p (data ) && ((size_t)(const void *)((data) + 1) - (size_t)(const void *)(data) == 1) && (__s1_len = __builtin_strlen ( data), __s1_len < 4) ? (__builtin_constant_p ("name") && ((size_t)(const void *)(("name") + 1) - (size_t)(const void * )("name") == 1) ? __builtin_strcmp (data, "name") : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) ("name"); int __result = (((const unsigned char *) ( const char *) (data))[0] - __s2[0]); if (__s1_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) (data))[1] - __s2[1]); if (__s1_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) (data))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) (data))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p ("name") && ((size_t)(const void *)(("name") + 1) - ( size_t)(const void *)("name") == 1) && (__s2_len = __builtin_strlen ("name"), __s2_len < 4) ? (__builtin_constant_p (data) && ((size_t)(const void *)((data) + 1) - (size_t)(const void *) (data) == 1) ? __builtin_strcmp (data, "name") : (- (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (data); int __result = (((const unsigned char *) (const char *) ("name"))[0] - __s2[0]); if (__s2_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) ("name"))[1] - __s2[1]); if (__s2_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) ("name"))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ("name"))[3] - __s2[3]); } } __result; })))) : __builtin_strcmp (data, "name")))); }) : strncmp (data, "name", 4))) == 0) { |
| 193 | if (!value || !*value) { |
| 194 | printf("mount option name requires a value.\n")__printf_chk (2 - 1, "mount option name requires a value.\n"); |
| 195 | return NULL((void*)0); |
| 196 | } |
| 197 | |
| 198 | /* take a copy of the name, to be used for |
| 199 | naming the keys that we add to kernel; */ |
| 200 | free(saw_name); |
| 201 | saw_name = strdup(value)(__extension__ (__builtin_constant_p (value) && ((size_t )(const void *)((value) + 1) - (size_t)(const void *)(value) == 1) ? (((const char *) (value))[0] == '\0' ? (char *) calloc ( (size_t) 1, (size_t) 1) : ({ size_t __len = strlen (value) + 1 ; char *__retval = (char *) malloc (__len); if (__retval != ( (void*)0)) __retval = (char *) memcpy (__retval, value, __len ); __retval; })) : __strdup (value))); |
| 202 | if (!saw_name) { |
| 203 | printf("out of memory.\n")__printf_chk (2 - 1, "out of memory.\n"); |
| 204 | return NULL((void*)0); |
| 205 | } |
| 206 | skip = 0; |
| 207 | } else { |
| 208 | skip = 0; |
| 209 | if (verboseflag) { |
| 210 | fprintf(stderr, "mount.ceph: unrecognized mount option \"%s\", "__fprintf_chk (stderr, 2 - 1, "mount.ceph: unrecognized mount option \"%s\", " "passing to kernel.\n", data) |
| 211 | "passing to kernel.\n", data)__fprintf_chk (stderr, 2 - 1, "mount.ceph: unrecognized mount option \"%s\", " "passing to kernel.\n", data); |
| 212 | } |
| 213 | } |
| 214 | |
| 215 | /* Copy (possibly modified) option to out */ |
| 216 | if (!skip) { |
| 217 | if (pos) |
| 218 | pos = safe_cat(&out, &out_len, pos, ","); |
| 219 | |
| 220 | if (value) { |
| 221 | pos = safe_cat(&out, &out_len, pos, data); |
| 222 | pos = safe_cat(&out, &out_len, pos, "="); |
| 223 | pos = safe_cat(&out, &out_len, pos, value); |
| 224 | } else { |
| 225 | pos = safe_cat(&out, &out_len, pos, data); |
| 226 | } |
| 227 | |
| 228 | } |
| 229 | data = next_keyword; |
| 230 | } while (data); |
| 231 | |
| 232 | name_pos = safe_cat(&name, &name_len, name_pos, "client."); |
| 233 | if (!saw_name) { |
| 234 | name_pos = safe_cat(&name, &name_len, name_pos, CEPH_AUTH_NAME_DEFAULT"guest"); |
| 235 | } else { |
| 236 | name_pos = safe_cat(&name, &name_len, name_pos, saw_name); |
Value stored to 'name_pos' is never read | |
| 237 | } |
| 238 | if (saw_secret || is_kernel_secret(name)) { |
| 239 | int ret; |
| 240 | char secret_option[MAX_SECRET_OPTION_LEN(1000 + 7)]; |
| 241 | ret = get_secret_option(saw_secret, name, secret_option, sizeof(secret_option)); |
| 242 | if (ret < 0) { |
| 243 | free(saw_name); |
| 244 | return NULL((void*)0); |
| 245 | } else { |
| 246 | if (pos) { |
| 247 | pos = safe_cat(&out, &out_len, pos, ","); |
| 248 | } |
| 249 | pos = safe_cat(&out, &out_len, pos, secret_option); |
| 250 | } |
| 251 | } |
| 252 | |
| 253 | free(saw_name); |
| 254 | if (!out) |
| 255 | return strdup(EMPTY_STRING)(__extension__ (__builtin_constant_p (EMPTY_STRING) && ((size_t)(const void *)((EMPTY_STRING) + 1) - (size_t)(const void *)(EMPTY_STRING) == 1) ? (((const char *) (EMPTY_STRING ))[0] == '\0' ? (char *) calloc ((size_t) 1, (size_t) 1) : ({ size_t __len = strlen (EMPTY_STRING) + 1; char *__retval = ( char *) malloc (__len); if (__retval != ((void*)0)) __retval = (char *) memcpy (__retval, EMPTY_STRING, __len); __retval; } )) : __strdup (EMPTY_STRING))); |
| 256 | return out; |
| 257 | } |
| 258 | |
| 259 | |
| 260 | static int parse_arguments(int argc, char *const *const argv, |
| 261 | const char **src, const char **node, const char **opts) |
| 262 | { |
| 263 | int i; |
| 264 | |
| 265 | if (argc < 2) { |
| 266 | // There were no arguments. Just show the usage. |
| 267 | return 1; |
| 268 | } |
| 269 | if ((!strcmp(argv[1], "-h")__extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (argv[1]) && __builtin_constant_p ("-h") && ( __s1_len = __builtin_strlen (argv[1]), __s2_len = __builtin_strlen ("-h"), (!((size_t)(const void *)((argv[1]) + 1) - (size_t)( const void *)(argv[1]) == 1) || __s1_len >= 4) && ( !((size_t)(const void *)(("-h") + 1) - (size_t)(const void *) ("-h") == 1) || __s2_len >= 4)) ? __builtin_strcmp (argv[1 ], "-h") : (__builtin_constant_p (argv[1]) && ((size_t )(const void *)((argv[1]) + 1) - (size_t)(const void *)(argv[ 1]) == 1) && (__s1_len = __builtin_strlen (argv[1]), __s1_len < 4) ? (__builtin_constant_p ("-h") && ((size_t)( const void *)(("-h") + 1) - (size_t)(const void *)("-h") == 1 ) ? __builtin_strcmp (argv[1], "-h") : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) ("-h"); int __result = (((const unsigned char *) (const char *) (argv[1]))[0] - __s2[0]); if (__s1_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) ( argv[1]))[1] - __s2[1]); if (__s1_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) ( argv[1]))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) (argv [1]))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p ("-h") && ((size_t)(const void *)(("-h") + 1) - (size_t )(const void *)("-h") == 1) && (__s2_len = __builtin_strlen ("-h"), __s2_len < 4) ? (__builtin_constant_p (argv[1]) && ((size_t)(const void *)((argv[1]) + 1) - (size_t)(const void *)(argv[1]) == 1) ? __builtin_strcmp (argv[1], "-h") : (- (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (argv[1]); int __result = (((const unsigned char *) ( const char *) ("-h"))[0] - __s2[0]); if (__s2_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) ("-h"))[1] - __s2[1]); if (__s2_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) ("-h"))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ("-h"))[3] - __s2[3]); } } __result; })))) : __builtin_strcmp (argv[1], "-h")))); })) || (!strcmp(argv[1], "--help")__extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (argv[1]) && __builtin_constant_p ("--help") && (__s1_len = __builtin_strlen (argv[1]), __s2_len = __builtin_strlen ("--help"), (!((size_t)(const void *)((argv[1]) + 1) - (size_t )(const void *)(argv[1]) == 1) || __s1_len >= 4) && (!((size_t)(const void *)(("--help") + 1) - (size_t)(const void *)("--help") == 1) || __s2_len >= 4)) ? __builtin_strcmp ( argv[1], "--help") : (__builtin_constant_p (argv[1]) && ((size_t)(const void *)((argv[1]) + 1) - (size_t)(const void *)(argv[1]) == 1) && (__s1_len = __builtin_strlen (argv [1]), __s1_len < 4) ? (__builtin_constant_p ("--help") && ((size_t)(const void *)(("--help") + 1) - (size_t)(const void *)("--help") == 1) ? __builtin_strcmp (argv[1], "--help") : ( __extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) ("--help"); int __result = (((const unsigned char *) (const char *) (argv[1]))[0] - __s2[0]); if (__s1_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) (argv[1]))[1] - __s2[1]); if (__s1_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) (argv[1]))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) (argv[1]))[3] - __s2[3]); } } __result ; }))) : (__builtin_constant_p ("--help") && ((size_t )(const void *)(("--help") + 1) - (size_t)(const void *)("--help" ) == 1) && (__s2_len = __builtin_strlen ("--help"), __s2_len < 4) ? (__builtin_constant_p (argv[1]) && ((size_t )(const void *)((argv[1]) + 1) - (size_t)(const void *)(argv[ 1]) == 1) ? __builtin_strcmp (argv[1], "--help") : (- (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (argv[1]); int __result = (((const unsigned char *) ( const char *) ("--help"))[0] - __s2[0]); if (__s2_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) ("--help"))[1] - __s2[1]); if (__s2_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) ("--help"))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ("--help"))[3] - __s2[3]); } } __result; })))) : __builtin_strcmp (argv[1], "--help")))); }))) { |
| 270 | // The user asked for help. |
| 271 | return 1; |
| 272 | } |
| 273 | |
| 274 | // The first two arguments are positional |
| 275 | if (argc < 3) |
| 276 | return -EINVAL22; |
| 277 | *src = argv[1]; |
| 278 | *node = argv[2]; |
| 279 | |
| 280 | // Parse the remaining options |
| 281 | *opts = EMPTY_STRING; |
| 282 | for (i = 3; i < argc; ++i) { |
| 283 | if (!strcmp("-h", argv[i])__extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ("-h") && __builtin_constant_p (argv[i]) && ( __s1_len = __builtin_strlen ("-h"), __s2_len = __builtin_strlen (argv[i]), (!((size_t)(const void *)(("-h") + 1) - (size_t)( const void *)("-h") == 1) || __s1_len >= 4) && (!( (size_t)(const void *)((argv[i]) + 1) - (size_t)(const void * )(argv[i]) == 1) || __s2_len >= 4)) ? __builtin_strcmp ("-h" , argv[i]) : (__builtin_constant_p ("-h") && ((size_t )(const void *)(("-h") + 1) - (size_t)(const void *)("-h") == 1) && (__s1_len = __builtin_strlen ("-h"), __s1_len < 4) ? (__builtin_constant_p (argv[i]) && ((size_t)(const void *)((argv[i]) + 1) - (size_t)(const void *)(argv[i]) == 1 ) ? __builtin_strcmp ("-h", argv[i]) : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (argv[i]); int __result = (((const unsigned char *) (const char *) ("-h"))[0] - __s2[0]); if (__s1_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) ( "-h"))[1] - __s2[1]); if (__s1_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) ( "-h"))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ("-h" ))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p ( argv[i]) && ((size_t)(const void *)((argv[i]) + 1) - ( size_t)(const void *)(argv[i]) == 1) && (__s2_len = __builtin_strlen (argv[i]), __s2_len < 4) ? (__builtin_constant_p ("-h") && ((size_t)(const void *)(("-h") + 1) - (size_t)(const void *) ("-h") == 1) ? __builtin_strcmp ("-h", argv[i]) : (- (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) ("-h"); int __result = (((const unsigned char *) (const char *) (argv[i]))[0] - __s2[0]); if (__s2_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) (argv[i]))[1] - __s2[1]); if (__s2_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) (argv[i]))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) (argv[i]))[3] - __s2[3]); } } __result; })))) : __builtin_strcmp ("-h", argv[i])))); })) |
| 284 | return 1; |
| 285 | else if (!strcmp("-n", argv[i])__extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ("-n") && __builtin_constant_p (argv[i]) && ( __s1_len = __builtin_strlen ("-n"), __s2_len = __builtin_strlen (argv[i]), (!((size_t)(const void *)(("-n") + 1) - (size_t)( const void *)("-n") == 1) || __s1_len >= 4) && (!( (size_t)(const void *)((argv[i]) + 1) - (size_t)(const void * )(argv[i]) == 1) || __s2_len >= 4)) ? __builtin_strcmp ("-n" , argv[i]) : (__builtin_constant_p ("-n") && ((size_t )(const void *)(("-n") + 1) - (size_t)(const void *)("-n") == 1) && (__s1_len = __builtin_strlen ("-n"), __s1_len < 4) ? (__builtin_constant_p (argv[i]) && ((size_t)(const void *)((argv[i]) + 1) - (size_t)(const void *)(argv[i]) == 1 ) ? __builtin_strcmp ("-n", argv[i]) : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (argv[i]); int __result = (((const unsigned char *) (const char *) ("-n"))[0] - __s2[0]); if (__s1_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) ( "-n"))[1] - __s2[1]); if (__s1_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) ( "-n"))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ("-n" ))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p ( argv[i]) && ((size_t)(const void *)((argv[i]) + 1) - ( size_t)(const void *)(argv[i]) == 1) && (__s2_len = __builtin_strlen (argv[i]), __s2_len < 4) ? (__builtin_constant_p ("-n") && ((size_t)(const void *)(("-n") + 1) - (size_t)(const void *) ("-n") == 1) ? __builtin_strcmp ("-n", argv[i]) : (- (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) ("-n"); int __result = (((const unsigned char *) (const char *) (argv[i]))[0] - __s2[0]); if (__s2_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) (argv[i]))[1] - __s2[1]); if (__s2_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) (argv[i]))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) (argv[i]))[3] - __s2[3]); } } __result; })))) : __builtin_strcmp ("-n", argv[i])))); })) |
| 286 | skip_mtab_flag = 1; |
| 287 | else if (!strcmp("-v", argv[i])__extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ("-v") && __builtin_constant_p (argv[i]) && ( __s1_len = __builtin_strlen ("-v"), __s2_len = __builtin_strlen (argv[i]), (!((size_t)(const void *)(("-v") + 1) - (size_t)( const void *)("-v") == 1) || __s1_len >= 4) && (!( (size_t)(const void *)((argv[i]) + 1) - (size_t)(const void * )(argv[i]) == 1) || __s2_len >= 4)) ? __builtin_strcmp ("-v" , argv[i]) : (__builtin_constant_p ("-v") && ((size_t )(const void *)(("-v") + 1) - (size_t)(const void *)("-v") == 1) && (__s1_len = __builtin_strlen ("-v"), __s1_len < 4) ? (__builtin_constant_p (argv[i]) && ((size_t)(const void *)((argv[i]) + 1) - (size_t)(const void *)(argv[i]) == 1 ) ? __builtin_strcmp ("-v", argv[i]) : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (argv[i]); int __result = (((const unsigned char *) (const char *) ("-v"))[0] - __s2[0]); if (__s1_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) ( "-v"))[1] - __s2[1]); if (__s1_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) ( "-v"))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ("-v" ))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p ( argv[i]) && ((size_t)(const void *)((argv[i]) + 1) - ( size_t)(const void *)(argv[i]) == 1) && (__s2_len = __builtin_strlen (argv[i]), __s2_len < 4) ? (__builtin_constant_p ("-v") && ((size_t)(const void *)(("-v") + 1) - (size_t)(const void *) ("-v") == 1) ? __builtin_strcmp ("-v", argv[i]) : (- (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) ("-v"); int __result = (((const unsigned char *) (const char *) (argv[i]))[0] - __s2[0]); if (__s2_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) (argv[i]))[1] - __s2[1]); if (__s2_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) (argv[i]))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) (argv[i]))[3] - __s2[3]); } } __result; })))) : __builtin_strcmp ("-v", argv[i])))); })) |
| 288 | verboseflag = 1; |
| 289 | else if (!strcmp("-o", argv[i])__extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ("-o") && __builtin_constant_p (argv[i]) && ( __s1_len = __builtin_strlen ("-o"), __s2_len = __builtin_strlen (argv[i]), (!((size_t)(const void *)(("-o") + 1) - (size_t)( const void *)("-o") == 1) || __s1_len >= 4) && (!( (size_t)(const void *)((argv[i]) + 1) - (size_t)(const void * )(argv[i]) == 1) || __s2_len >= 4)) ? __builtin_strcmp ("-o" , argv[i]) : (__builtin_constant_p ("-o") && ((size_t )(const void *)(("-o") + 1) - (size_t)(const void *)("-o") == 1) && (__s1_len = __builtin_strlen ("-o"), __s1_len < 4) ? (__builtin_constant_p (argv[i]) && ((size_t)(const void *)((argv[i]) + 1) - (size_t)(const void *)(argv[i]) == 1 ) ? __builtin_strcmp ("-o", argv[i]) : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (argv[i]); int __result = (((const unsigned char *) (const char *) ("-o"))[0] - __s2[0]); if (__s1_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) ( "-o"))[1] - __s2[1]); if (__s1_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) ( "-o"))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ("-o" ))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p ( argv[i]) && ((size_t)(const void *)((argv[i]) + 1) - ( size_t)(const void *)(argv[i]) == 1) && (__s2_len = __builtin_strlen (argv[i]), __s2_len < 4) ? (__builtin_constant_p ("-o") && ((size_t)(const void *)(("-o") + 1) - (size_t)(const void *) ("-o") == 1) ? __builtin_strcmp ("-o", argv[i]) : (- (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) ("-o"); int __result = (((const unsigned char *) (const char *) (argv[i]))[0] - __s2[0]); if (__s2_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) (argv[i]))[1] - __s2[1]); if (__s2_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) (argv[i]))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) (argv[i]))[3] - __s2[3]); } } __result; })))) : __builtin_strcmp ("-o", argv[i])))); })) { |
| 290 | ++i; |
| 291 | if (i >= argc) { |
| 292 | printf("Option -o requires an argument.\n\n")__printf_chk (2 - 1, "Option -o requires an argument.\n\n"); |
| 293 | return -EINVAL22; |
| 294 | } |
| 295 | *opts = argv[i]; |
| 296 | } |
| 297 | else { |
| 298 | printf("Can't understand option: '%s'\n\n", argv[i])__printf_chk (2 - 1, "Can't understand option: '%s'\n\n", argv [i]); |
| 299 | return -EINVAL22; |
| 300 | } |
| 301 | } |
| 302 | return 0; |
| 303 | } |
| 304 | |
| 305 | /* modprobe failing doesn't necessarily prevent from working, so this |
| 306 | returns void */ |
| 307 | static void modprobe(void) |
| 308 | { |
| 309 | int r; |
| 310 | |
| 311 | r = module_load("ceph", NULL((void*)0)); |
| 312 | if (r) |
| 313 | printf("failed to load ceph kernel module (%d)\n", r)__printf_chk (2 - 1, "failed to load ceph kernel module (%d)\n" , r); |
| 314 | } |
| 315 | |
| 316 | static void usage(const char *prog_name) |
| 317 | { |
| 318 | printf("usage: %s [src] [mount-point] [-n] [-v] [-o ceph-options]\n",__printf_chk (2 - 1, "usage: %s [src] [mount-point] [-n] [-v] [-o ceph-options]\n" , prog_name) |
| 319 | prog_name)__printf_chk (2 - 1, "usage: %s [src] [mount-point] [-n] [-v] [-o ceph-options]\n" , prog_name); |
| 320 | printf("options:\n")__printf_chk (2 - 1, "options:\n"); |
| 321 | printf("\t-h: Print this help\n")__printf_chk (2 - 1, "\t-h: Print this help\n"); |
| 322 | printf("\t-n: Do not update /etc/mtab\n")__printf_chk (2 - 1, "\t-n: Do not update /etc/mtab\n"); |
| 323 | printf("\t-v: Verbose\n")__printf_chk (2 - 1, "\t-v: Verbose\n"); |
| 324 | printf("\tceph-options: refer to mount.ceph(8)\n")__printf_chk (2 - 1, "\tceph-options: refer to mount.ceph(8)\n" ); |
| 325 | printf("\n")__printf_chk (2 - 1, "\n"); |
| 326 | } |
| 327 | |
| 328 | int main(int argc, char *argv[]) |
| 329 | { |
| 330 | const char *src, *node, *opts; |
| 331 | char *rsrc = NULL((void*)0); |
| 332 | char *popts = NULL((void*)0); |
| 333 | int flags = 0; |
| 334 | int retval = 0; |
| 335 | |
| 336 | retval = parse_arguments(argc, argv, &src, &node, &opts); |
| 337 | if (retval) { |
| 338 | usage(argv[0]); |
| 339 | exit((retval > 0) ? EXIT_SUCCESS0 : EXIT_FAILURE1); |
| 340 | } |
| 341 | |
| 342 | rsrc = mount_resolve_src(src); |
| 343 | if (!rsrc) { |
| 344 | printf("failed to resolve source\n")__printf_chk (2 - 1, "failed to resolve source\n"); |
| 345 | exit(1); |
| 346 | } |
| 347 | |
| 348 | modprobe(); |
| 349 | |
| 350 | popts = parse_options(opts, &flags); |
| 351 | if (!popts) { |
| 352 | printf("failed to parse ceph_options\n")__printf_chk (2 - 1, "failed to parse ceph_options\n"); |
| 353 | exit(1); |
| 354 | } |
| 355 | |
| 356 | block_signals(SIG_BLOCK0); |
| 357 | |
| 358 | if (mount(rsrc, node, "ceph", flags, popts)) { |
| 359 | retval = errno(*__errno_location ()); |
| 360 | switch (errno(*__errno_location ())) { |
| 361 | case ENODEV19: |
| 362 | printf("mount error: ceph filesystem not supported by the system\n")__printf_chk (2 - 1, "mount error: ceph filesystem not supported by the system\n" ); |
| 363 | break; |
| 364 | default: |
| 365 | printf("mount error %d = %s\n",errno,strerror(errno))__printf_chk (2 - 1, "mount error %d = %s\n",(*__errno_location ()),strerror((*__errno_location ()))); |
| 366 | } |
| 367 | } else { |
| 368 | if (!skip_mtab_flag) { |
| 369 | update_mtab_entry(rsrc, node, "ceph", popts, flags, 0, 0); |
| 370 | } |
| 371 | } |
| 372 | |
| 373 | block_signals(SIG_UNBLOCK1); |
| 374 | |
| 375 | free(popts); |
| 376 | free(rsrc); |
| 377 | exit(retval); |
| 378 | } |
| 379 |