~mvo/snap-confine/squashfs

« back to all changes in this revision

Viewing changes to src/main.c

  • Committer: Michael Vogt
  • Date: 2015-06-03 13:02:01 UTC
  • mfrom: (65.1.4 fix-tests)
  • Revision ID: michael.vogt@ubuntu.com-20150603130201-w461yfqmwz57328z
mergedĀ lp:~mterry/ubuntu-core-launcher/fix-tests

Show diffs side-by-side

added added

removed removed

Lines of Context:
271
271
   if(!verify_appname(appname))
272
272
      die("appname %s not allowed", appname);
273
273
 
274
 
   // verify binary path
275
 
   char apps_prefix[128];
276
 
   char frameworks_prefix[128];
277
 
   char oem_prefix[128];
278
 
   must_snprintf(apps_prefix, sizeof(apps_prefix), "/apps/%s/", appname);
279
 
   must_snprintf(frameworks_prefix, sizeof(frameworks_prefix), "/frameworks/%s/", appname);
280
 
   must_snprintf(oem_prefix, sizeof(oem_prefix), "/oem/%s/", appname);
281
 
   if (strstr(binary, apps_prefix) != binary &&
282
 
           strstr(binary, oem_prefix) != binary &&
283
 
           strstr(binary, frameworks_prefix) != binary)
284
 
      die("binary must be inside /apps/%s/, /frameworks/%s/ or /oem/%s/",
285
 
              appname, appname, appname);
286
 
 
287
274
   // this code always needs to run as root for the cgroup/udev setup,
288
275
   // however for the tests we allow it to run as non-root
289
276
   if(geteuid() != 0 && getenv("UBUNTU_CORE_LAUNCHER_NO_ROOT") == NULL) {
291
278
   }
292
279
 
293
280
   if(geteuid() == 0) {
 
281
       // verify binary path
 
282
       char apps_prefix[128];
 
283
       char frameworks_prefix[128];
 
284
       char oem_prefix[128];
 
285
       must_snprintf(apps_prefix, sizeof(apps_prefix), "/apps/%s/", appname);
 
286
       must_snprintf(frameworks_prefix, sizeof(frameworks_prefix), "/frameworks/%s/", appname);
 
287
       must_snprintf(oem_prefix, sizeof(oem_prefix), "/oem/%s/", appname);
 
288
       if (strstr(binary, apps_prefix) != binary &&
 
289
               strstr(binary, oem_prefix) != binary &&
 
290
               strstr(binary, frameworks_prefix) != binary)
 
291
          die("binary must be inside /apps/%s/, /frameworks/%s/ or /oem/%s/",
 
292
                  appname, appname, appname);
 
293
 
294
294
       // set up private mounts
295
295
       setup_private_mount(appname);
296
296