Skip to content
Snippets Groups Projects
Select Git revision
  • v3.12-rc6
  • master default protected
  • objtool-32bit
  • objtool
  • v5.9
  • v5.9-rc8
  • v5.9-rc7
  • v5.9-rc6
  • v5.9-rc5
  • v5.9-rc4
  • v5.9-rc3
  • v5.9-rc2
  • v5.9-rc1
  • v5.8
  • v5.8-rc7
  • v5.8-rc6
  • v5.8-rc5
  • v5.8-rc4
  • v5.8-rc3
  • v5.8-rc2
  • v5.8-rc1
  • v5.7
  • v5.7-rc7
  • v5.7-rc6
24 results

ablkcipher.c

Blame
  • Forked from Jonas Rabenstein / Linux
    Source project has a limited visibility.
    • Mathias Krause's avatar
      9a5467bf
      crypto: user - fix info leaks in report API · 9a5467bf
      Mathias Krause authored
      
      Three errors resulting in kernel memory disclosure:
      
      1/ The structures used for the netlink based crypto algorithm report API
      are located on the stack. As snprintf() does not fill the remainder of
      the buffer with null bytes, those stack bytes will be disclosed to users
      of the API. Switch to strncpy() to fix this.
      
      2/ crypto_report_one() does not initialize all field of struct
      crypto_user_alg. Fix this to fix the heap info leak.
      
      3/ For the module name we should copy only as many bytes as
      module_name() returns -- not as much as the destination buffer could
      hold. But the current code does not and therefore copies random data
      from behind the end of the module name, as the module name is always
      shorter than CRYPTO_MAX_ALG_NAME.
      
      Also switch to use strncpy() to copy the algorithm's name and
      driver_name. They are strings, after all.
      
      Signed-off-by: default avatarMathias Krause <minipli@googlemail.com>
      Cc: Steffen Klassert <steffen.klassert@secunet.com>
      Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
      9a5467bf
      History
      crypto: user - fix info leaks in report API
      Mathias Krause authored
      
      Three errors resulting in kernel memory disclosure:
      
      1/ The structures used for the netlink based crypto algorithm report API
      are located on the stack. As snprintf() does not fill the remainder of
      the buffer with null bytes, those stack bytes will be disclosed to users
      of the API. Switch to strncpy() to fix this.
      
      2/ crypto_report_one() does not initialize all field of struct
      crypto_user_alg. Fix this to fix the heap info leak.
      
      3/ For the module name we should copy only as many bytes as
      module_name() returns -- not as much as the destination buffer could
      hold. But the current code does not and therefore copies random data
      from behind the end of the module name, as the module name is always
      shorter than CRYPTO_MAX_ALG_NAME.
      
      Also switch to use strncpy() to copy the algorithm's name and
      driver_name. They are strings, after all.
      
      Signed-off-by: default avatarMathias Krause <minipli@googlemail.com>
      Cc: Steffen Klassert <steffen.klassert@secunet.com>
      Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
    git-mv.perl 4.58 KiB
    #!/usr/bin/perl
    #
    # Copyright 2005, Ryan Anderson <ryan@michonline.com>
    #                 Josef Weidendorfer <Josef.Weidendorfer@gmx.de>
    #
    # This file is licensed under the GPL v2, or a later version
    # at the discretion of Linus Torvalds.
    
    
    use warnings;
    use strict;
    use Getopt::Std;
    
    sub usage() {
    	print <<EOT;
    $0 [-f] [-n] <source> <dest>
    $0 [-f] [-k] [-n] <source> ... <dest directory>
    
    In the first form, source must exist and be either a file,
    symlink or directory, dest must not exist. It renames source to dest.
    In the second form, the last argument has to be an existing
    directory; the given sources will be moved into this directory.
    
    Updates the git cache to reflect the change.
    Use "git commit" to make the change permanently.
    
    Options:
      -f   Force renaming/moving, even if target exists
      -k   Continue on error by skipping
           not-existing or not revision-controlled source
      -n   Do nothing; show what would happen
    EOT
    	exit(1);
    }
    
    # Sanity checks:
    my $GIT_DIR = $ENV{'GIT_DIR'} || ".git";
    
    unless ( -d $GIT_DIR && -d $GIT_DIR . "/objects" && 
    	-d $GIT_DIR . "/objects/" && -d $GIT_DIR . "/refs") {
        print "Git repository not found.";
        usage();
    }
    
    
    our ($opt_n, $opt_f, $opt_h, $opt_k, $opt_v);
    getopts("hnfkv") || usage;
    usage() if $opt_h;
    @ARGV >= 1 or usage;
    
    my (@srcArgs, @dstArgs, @srcs, @dsts);
    my ($src, $dst, $base, $dstDir);
    
    my $argCount = scalar @ARGV;
    if (-d $ARGV[$argCount-1]) {
    	$dstDir = $ARGV[$argCount-1];
    	# remove any trailing slash
    	$dstDir =~ s/\/$//;
    	@srcArgs = @ARGV[0..$argCount-2];
    	
    	foreach $src (@srcArgs) {
    		$base = $src;
    		$base =~ s/^.*\///;
    		$dst = "$dstDir/". $base;
    		push @dstArgs, $dst;
    	}
    }
    else {
        if ($argCount != 2) {
    	print "Error: moving to directory '"