~ubuntu-branches/ubuntu/maverick/samba/maverick-security

« back to all changes in this revision

Viewing changes to source/lib/netapi/user.c

  • Committer: Bazaar Package Importer
  • Author(s): Andrew Mitchell
  • Date: 2009-05-18 13:26:04 UTC
  • mfrom: (0.28.5 sid)
  • Revision ID: james.westby@ubuntu.com-20090518132604-ebyuqimgymtr3h0k
Tags: 2:3.3.4-2ubuntu1
* Merge from debian unstable, remaining changes:
  + debian/patches/VERSION.patch:
    - setup SAMBA_VERSION_SUFFIX to Ubuntu.
  + debian/smb.conf:
    - add "(Samba, Ubuntu)" to server string.
    - comment out the default [homes] share, and add a comment about
      "valid users = %S" to show users how to restrict access to
      \\server\username to only username.
    - Set 'usershare allow guests', so that usershare admins are
      allowed to create public shares in addition to authenticated
      ones.
    - add map to guest = Bad user, maps bad username to guest access.
  + debian/samba-common.config:
    - Do not change priority to high if dhclient3 is installed.
    - Use priority medium instead of high for the workgroup question.
  + debian/samba-common.postinst: Add more informative error message for
    the case where smb.conf was manually deleted (LP: #312449)
  + debian/mksambapasswd.awk:
    - Do not add user with UID less than 1000 to smbpasswd.
  + debian/control:
    - Make libwbclient0 replace/conflict with hardy's likewise-open.
    - Don't build against ctdb.
    - Add suggests keyutils for smbfs. (LP: #300221)
  + debian/rules:
    - enable "native" PIE hardening.
    - remove --with-ctdb and --with-cluster-support=yes
  + Add ufw integration:
    - Created debian/samba.ufw profile.
    - debian/rules, debian/samba.dirs, debian/samba.files: install 
      profile
    - debian/control: have samba sugguest ufw.
* Dropped patches:
  + debian/patches/fix-upstream-bug-6186.patch: Merged upstream

Show diffs side-by-side

added added

removed removed

Lines of Context:
391
391
 
392
392
        werr = libnetapi_samr_open_domain(ctx, pipe_cli,
393
393
                                          SAMR_ACCESS_ENUM_DOMAINS |
394
 
                                          SAMR_ACCESS_OPEN_DOMAIN,
 
394
                                          SAMR_ACCESS_LOOKUP_DOMAIN,
395
395
                                          SAMR_DOMAIN_ACCESS_LOOKUP_INFO_1 |
396
396
                                          SAMR_DOMAIN_ACCESS_CREATE_USER |
397
397
                                          SAMR_DOMAIN_ACCESS_OPEN_ACCOUNT,
519
519
 
520
520
        werr = libnetapi_samr_open_domain(ctx, pipe_cli,
521
521
                                          SAMR_ACCESS_ENUM_DOMAINS |
522
 
                                          SAMR_ACCESS_OPEN_DOMAIN,
 
522
                                          SAMR_ACCESS_LOOKUP_DOMAIN,
523
523
                                          SAMR_DOMAIN_ACCESS_OPEN_ACCOUNT,
524
524
                                          &connect_handle,
525
525
                                          &domain_handle,
1231
1231
 
1232
1232
        werr = libnetapi_samr_open_builtin_domain(ctx, pipe_cli,
1233
1233
                                                  SAMR_ACCESS_ENUM_DOMAINS |
1234
 
                                                  SAMR_ACCESS_OPEN_DOMAIN,
 
1234
                                                  SAMR_ACCESS_LOOKUP_DOMAIN,
1235
1235
                                                  SAMR_DOMAIN_ACCESS_OPEN_ACCOUNT |
1236
1236
                                                  SAMR_DOMAIN_ACCESS_LOOKUP_ALIAS,
1237
1237
                                                  &connect_handle,
1242
1242
 
1243
1243
        werr = libnetapi_samr_open_domain(ctx, pipe_cli,
1244
1244
                                          SAMR_ACCESS_ENUM_DOMAINS |
1245
 
                                          SAMR_ACCESS_OPEN_DOMAIN,
 
1245
                                          SAMR_ACCESS_LOOKUP_DOMAIN,
1246
1246
                                          SAMR_DOMAIN_ACCESS_LOOKUP_INFO_2 |
1247
1247
                                          SAMR_DOMAIN_ACCESS_ENUM_ACCOUNTS |
1248
1248
                                          SAMR_DOMAIN_ACCESS_OPEN_ACCOUNT,
1510
1510
 
1511
1511
        NTSTATUS status = NT_STATUS_OK;
1512
1512
        WERROR werr;
 
1513
        WERROR werr_tmp;
 
1514
 
 
1515
        *r->out.entries_read = 0;
1513
1516
 
1514
1517
        ZERO_STRUCT(connect_handle);
1515
1518
        ZERO_STRUCT(domain_handle);
1533
1536
 
1534
1537
        werr = libnetapi_samr_open_domain(ctx, pipe_cli,
1535
1538
                                          SAMR_ACCESS_ENUM_DOMAINS |
1536
 
                                          SAMR_ACCESS_OPEN_DOMAIN,
 
1539
                                          SAMR_ACCESS_LOOKUP_DOMAIN,
1537
1540
                                          SAMR_DOMAIN_ACCESS_LOOKUP_INFO_2 |
1538
1541
                                          SAMR_DOMAIN_ACCESS_ENUM_ACCOUNTS |
1539
1542
                                          SAMR_DOMAIN_ACCESS_OPEN_ACCOUNT,
1554
1557
                                               &total_size,
1555
1558
                                               &returned_size,
1556
1559
                                               &info);
1557
 
        if (!NT_STATUS_IS_OK(status)) {
1558
 
                werr = ntstatus_to_werror(status);
 
1560
        werr = ntstatus_to_werror(status);
 
1561
        if (NT_STATUS_IS_ERR(status)) {
1559
1562
                goto done;
1560
1563
        }
1561
1564
 
1562
 
        werr = convert_samr_dispinfo_to_NET_DISPLAY(ctx, &info,
1563
 
                                                    r->in.level,
1564
 
                                                    r->out.entries_read,
1565
 
                                                    r->out.buffer);
 
1565
        werr_tmp = convert_samr_dispinfo_to_NET_DISPLAY(ctx, &info,
 
1566
                                                        r->in.level,
 
1567
                                                        r->out.entries_read,
 
1568
                                                        r->out.buffer);
 
1569
        if (!W_ERROR_IS_OK(werr_tmp)) {
 
1570
                werr = werr_tmp;
 
1571
        }
1566
1572
 done:
1567
1573
        if (!cli) {
1568
1574
                return werr;
1662
1668
 
1663
1669
        werr = libnetapi_samr_open_domain(ctx, pipe_cli,
1664
1670
                                          SAMR_ACCESS_ENUM_DOMAINS |
1665
 
                                          SAMR_ACCESS_OPEN_DOMAIN,
 
1671
                                          SAMR_ACCESS_LOOKUP_DOMAIN,
1666
1672
                                          SAMR_DOMAIN_ACCESS_OPEN_ACCOUNT,
1667
1673
                                          &connect_handle,
1668
1674
                                          &domain_handle,
1673
1679
 
1674
1680
        werr = libnetapi_samr_open_builtin_domain(ctx, pipe_cli,
1675
1681
                                                  SAMR_ACCESS_ENUM_DOMAINS |
1676
 
                                                  SAMR_ACCESS_OPEN_DOMAIN,
 
1682
                                                  SAMR_ACCESS_LOOKUP_DOMAIN,
1677
1683
                                                  SAMR_DOMAIN_ACCESS_OPEN_ACCOUNT |
1678
1684
                                                  SAMR_DOMAIN_ACCESS_LOOKUP_ALIAS,
1679
1685
                                                  &connect_handle,
1820
1826
 
1821
1827
        werr = libnetapi_samr_open_domain(ctx, pipe_cli,
1822
1828
                                          SAMR_ACCESS_ENUM_DOMAINS |
1823
 
                                          SAMR_ACCESS_OPEN_DOMAIN,
 
1829
                                          SAMR_ACCESS_LOOKUP_DOMAIN,
1824
1830
                                          SAMR_DOMAIN_ACCESS_LOOKUP_INFO_1 |
1825
1831
                                          SAMR_DOMAIN_ACCESS_OPEN_ACCOUNT,
1826
1832
                                          &connect_handle,
1832
1838
 
1833
1839
        werr = libnetapi_samr_open_builtin_domain(ctx, pipe_cli,
1834
1840
                                                  SAMR_ACCESS_ENUM_DOMAINS |
1835
 
                                                  SAMR_ACCESS_OPEN_DOMAIN,
 
1841
                                                  SAMR_ACCESS_LOOKUP_DOMAIN,
1836
1842
                                                  SAMR_DOMAIN_ACCESS_OPEN_ACCOUNT |
1837
1843
                                                  SAMR_DOMAIN_ACCESS_LOOKUP_ALIAS,
1838
1844
                                                  &connect_handle,
2246
2252
 
2247
2253
        werr = libnetapi_samr_open_domain(ctx, pipe_cli,
2248
2254
                                          SAMR_ACCESS_ENUM_DOMAINS |
2249
 
                                          SAMR_ACCESS_OPEN_DOMAIN,
 
2255
                                          SAMR_ACCESS_LOOKUP_DOMAIN,
2250
2256
                                          access_mask,
2251
2257
                                          &connect_handle,
2252
2258
                                          &domain_handle,
2730
2736
 
2731
2737
        werr = libnetapi_samr_open_domain(ctx, pipe_cli,
2732
2738
                                          SAMR_ACCESS_ENUM_DOMAINS |
2733
 
                                          SAMR_ACCESS_OPEN_DOMAIN,
 
2739
                                          SAMR_ACCESS_LOOKUP_DOMAIN,
2734
2740
                                          access_mask,
2735
2741
                                          &connect_handle,
2736
2742
                                          &domain_handle,
2849
2855
 
2850
2856
        *r->out.buffer = NULL;
2851
2857
        *r->out.entries_read = 0;
 
2858
        *r->out.total_entries = 0;
2852
2859
 
2853
2860
        switch (r->in.level) {
2854
2861
                case 0:
2868
2875
 
2869
2876
        werr = libnetapi_samr_open_domain(ctx, pipe_cli,
2870
2877
                                          SAMR_ACCESS_ENUM_DOMAINS |
2871
 
                                          SAMR_ACCESS_OPEN_DOMAIN,
 
2878
                                          SAMR_ACCESS_LOOKUP_DOMAIN,
2872
2879
                                          SAMR_DOMAIN_ACCESS_OPEN_ACCOUNT,
2873
2880
                                          &connect_handle,
2874
2881
                                          &domain_handle,
2943
2950
                }
2944
2951
        }
2945
2952
 
2946
 
        if (r->out.entries_read) {
2947
 
                *r->out.entries_read = entries_read;
2948
 
        }
2949
 
        if (r->out.total_entries) {
2950
 
                *r->out.total_entries = entries_read;
2951
 
        }
 
2953
        *r->out.entries_read = entries_read;
 
2954
        *r->out.total_entries = entries_read;
2952
2955
 
2953
2956
 done:
2954
2957
        if (!cli) {
3029
3032
 
3030
3033
        werr = libnetapi_samr_open_domain(ctx, pipe_cli,
3031
3034
                                          SAMR_ACCESS_ENUM_DOMAINS |
3032
 
                                          SAMR_ACCESS_OPEN_DOMAIN,
 
3035
                                          SAMR_ACCESS_LOOKUP_DOMAIN,
3033
3036
                                          SAMR_DOMAIN_ACCESS_OPEN_ACCOUNT,
3034
3037
                                          &connect_handle,
3035
3038
                                          &domain_handle,
3297
3300
 
3298
3301
        *r->out.buffer = NULL;
3299
3302
        *r->out.entries_read = 0;
 
3303
        *r->out.total_entries = 0;
3300
3304
 
3301
3305
        switch (r->in.level) {
3302
3306
                case 0:
3316
3320
 
3317
3321
        werr = libnetapi_samr_open_domain(ctx, pipe_cli,
3318
3322
                                          SAMR_ACCESS_ENUM_DOMAINS |
3319
 
                                          SAMR_ACCESS_OPEN_DOMAIN,
 
3323
                                          SAMR_ACCESS_LOOKUP_DOMAIN,
3320
3324
                                          SAMR_DOMAIN_ACCESS_OPEN_ACCOUNT |
3321
3325
                                          SAMR_DOMAIN_ACCESS_LOOKUP_ALIAS,
3322
3326
                                          &connect_handle,
3328
3332
 
3329
3333
        werr = libnetapi_samr_open_builtin_domain(ctx, pipe_cli,
3330
3334
                                                  SAMR_ACCESS_ENUM_DOMAINS |
3331
 
                                                  SAMR_ACCESS_OPEN_DOMAIN,
 
3335
                                                  SAMR_ACCESS_LOOKUP_DOMAIN,
3332
3336
                                                  SAMR_DOMAIN_ACCESS_OPEN_ACCOUNT |
3333
3337
                                                  SAMR_DOMAIN_ACCESS_LOOKUP_ALIAS,
3334
3338
                                                  &connect_handle,
3458
3462
                }
3459
3463
        }
3460
3464
 
3461
 
        if (r->out.entries_read) {
3462
 
                *r->out.entries_read = entries_read;
3463
 
        }
3464
 
        if (r->out.total_entries) {
3465
 
                *r->out.total_entries = entries_read;
3466
 
        }
 
3465
        *r->out.entries_read = entries_read;
 
3466
        *r->out.total_entries = entries_read;
3467
3467
 
3468
3468
 done:
3469
3469
        if (!cli) {